language-lawyer पर टैग किए गए जवाब

प्रोग्रामिंग भाषाओं और वातावरणों की औपचारिक या आधिकारिक विशिष्टताओं की जटिलताओं के बारे में प्रश्नों के लिए।


3
C ++ 20 अवधारणाएं: टेम्पलेट तर्क कई अवधारणाओं के लिए योग्य होने पर कौन सा टेम्पलेट विशेषज्ञता चुना जाता है?
दिया हुआ : #include <concepts> #include <iostream> template<class T> struct wrapper; template<std::signed_integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "signed_integral" << std::endl; } }; template<std::integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "integral" << std::endl; } }; int main() { …

3
वैश्विक चर के संदर्भ में लैंबडा फंक्शन म्यूटेबल कैप्चर का व्यवहार अंतर
मैंने पाया कि परिणाम संकलक में भिन्न होते हैं यदि मैं एक परिवर्तनीय कीवर्ड के साथ वैश्विक चर के संदर्भ को कैप्चर करने के लिए लैम्बडा का उपयोग करता हूं और फिर लैम्बडा फ़ंक्शन में मान को संशोधित करता हूं। #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() …

1
स्वयं के इनिशियलाइज़र में वैरिएबल का उपयोग
[basic.scope.pdecl] / C ++ 20 मानक मसौदे में से 1 में नोट में निम्नलिखित (गैर-मानक) उदाहरण था ( पुल अनुरोध के विलय से पहले आंशिक उद्धरण 3580 , इस प्रश्न का उत्तर देखें): unsigned char x = x; [...] x को अपने स्वयं के (अनिश्चित) मूल्य के साथ आरंभीकृत किया …

2
क्या एक पीओडी प्रकार एक तुच्छ, मानक-लेआउट प्रकार होने के बराबर है?
C ++ 20 में, POD की अवधारणा को हटा दिया गया है, माना जाता है क्योंकि यह तुच्छ और मानक-लेआउट होने का एक अर्थहीन समग्र गुण है। हालाँकि, C ++ 20 ड्राफ्ट में POD की परिभाषा बिल्कुल "तुच्छ और मानक-लेआउट" नहीं है; यह वास्तव में है: POD वर्ग एक ऐसा …

3
कस्टम आवंटनकर्ता द्वारा साझा की गई मेमोरी में एक साझा_प्राथर डिलेटर संग्रहीत है?
कहें कि मेरे पास एक shared_ptrकस्टम आवंटनकर्ता और एक कस्टम डेलेटर है। मुझे मानक में कुछ भी नहीं मिला जो इस बात पर चर्चा करता है कि डिलेटर को कहाँ संग्रहीत किया जाना चाहिए: यह नहीं कहता है कि कस्टम एलोलेटर का उपयोग डेलेटर की मेमोरी के लिए किया जाएगा, …

4
वापसी पर स्पष्ट रूपांतरण की अनुमति नहीं है
#include <optional> bool f() { std::optional<int> opt; return opt; } संकलन नहीं है: 'return': cannot convert from 'std::optional<int>' to 'bool' परामर्श संदर्भ मैंने एक स्पष्टीकरण खोजने के लिए सोचा होगा, लेकिन मैंने इसे पढ़ा क्योंकि यह ठीक होना चाहिए। जब भी किसी प्रकार T1 की अभिव्यक्ति को उस प्रकार को …

2
एक पॉइंटर के गुण शून्य लंबाई सरणी के लिए
विचार करें int main() { auto a = new int[0]; delete[] a; // So there's no memory leak } प्रतिलिपि आरंभीकरण और विलोपन के बीच, क्या आपको सूचक को पढ़ने की अनुमति है a + 1? इसके अलावा, क्या भाषा कंपाइलर को सेट aकरने की अनुमति देती है nullptr?

1
फ़ंक्शन तर्क के रूप में {} क्यों अस्पष्टता का कारण नहीं बनता है?
इस कोड पर विचार करें: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const std::vector<double>&, int, A = A::X) { std::cout << "int overload" << std::endl; } …

4
क्या std का उपयोग करना मान्य है :: std के साथ रूपांतरण :: back_inserter?
Cppreference में इसके लिए उदाहरण कोड है std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); लेकिन यह भी कहता है: std::transformunary_opया के आदेश आवेदन की गारंटी नहीं है binary_op। किसी फंक्शन को किसी सीक्वेंस-ऑर्डर में लागू करने के लिए या किसी फंक्शन को …

3
क्या वस्तु के जीवनकाल के दौरान `This` सूचक स्थिर है?
क्या thisकिसी विशेष वस्तु के जीवनकाल के दौरान पॉइंटर का मूल्य स्थिर रहने की गारंटी है? मैं एक ऐसे मामले की कल्पना नहीं कर सकता जहां यह बदल जाएगा, लेकिन यह नहीं पता कि क्या मुझे कुछ याद नहीं है।

2
एरो (->) ऑपरेटर पूर्वता / प्राथमिकता सबसे कम है, या असाइनमेंट / संयुक्त असाइनमेंट की प्राथमिकता सबसे कम है?
JLS : सबसे कम पूर्ववर्ती ऑपरेटर एक लैम्ब्डा अभिव्यक्ति (->) का तीर है , इसके बाद असाइनमेंट ऑपरेटर। किस दिशा में पीछा किया गया (बढ़ती प्राथमिकता, घटती प्राथमिकता)? - "पीछा किया" का अर्थ है असाइनमेंट में उच्च प्राथमिकता या कम प्राथमिकता है (तीर ऑपरेटर के संबंध में)? मुझे लगता है, …

2
क्या एक वैरिएबल इनिशियलाइज़ेशन पर कूदना बीमार-निर्मित है या क्या यह अपरिभाषित व्यवहार का कारण बनता है?
इस कोड पर विचार करें: void foo() { goto bar; int x = 0; bar: ; } जीसीसी और क्लैंग इसे अस्वीकार करते हैं , क्योंकि कूदने से bar:चर आरंभीकरण को दरकिनार कर देता है। MSVC बिल्कुल भी शिकायत नहीं करता ( चेतावनी के xबाद उपयोग करने के अलावा bar:)। …

1
जिस तरह से यह करता है, उसके लिए C ++ मानक हैंडल फ़ाइल क्यों करता है?
C ++ streamoffएक (फ़ाइल) स्ट्रीम के भीतर एक ऑफसेट का प्रतिनिधित्व करने के लिए प्रकार का उपयोग करता है और इसे इस तरह परिभाषित किया जाता है: [stream.types]: using streamoff = implementation-defined ; टाइप स्ट्रीमऑफ़ ऑपरेटिंग सिस्टम के लिए अधिकतम संभव फ़ाइल आकार का प्रतिनिधित्व करने के लिए पर्याप्त आकार …

1
क्या क्लैंग कोड को अस्वीकार करने के लिए सही है जिसमें वर्ग टेम्पलेट के नेस्टेड वर्ग को केवल विशेषज्ञता के माध्यम से परिभाषित किया गया है?
निम्नलिखित वर्ग टेम्पलेट को देखते हुए: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; हम Innerप्रत्येक विशेषज्ञता के लिए अलग से परिभाषित करते हैं Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; और फिर सदस्य समारोह fको सभी विशिष्टताओं के लिए एक बार परिभाषित करें …

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.