c++ - what are the backtick symbols in vs user mode debugger -


मेरे पास Program.exe में बनाये गये निम्नलिखित सी ++ कोड है, जो बनाम 12

  वर्ग foo {सार्वजनिक: foo () {std :: cout & lt; & lt; "सीटीओआर में \ n"; } ~ Foo () {std :: cout & lt; & lt; "डीटीओआर \ n"; } Std :: string s; }; Int main () {foo f {}; }   

फिर मैं डीबगर तत्काल विंडो में निम्नलिखित कमांड टाइप कर रहा हूं

  x प्रोग्राम! * Foo *   

यह मुझे निम्नलिखित आउटपुट देता है

  0: 000 & gt; x प्रोग्राम! * foo * 00007ff6 '11ce4b00 प्रोग्राम! foo :: ~ foo (शून्य) 00007ff6`11ceaef0 प्रोग्राम! `foo :: ~ foo '::` 1' :: dtor $ 0 (शून्य) 00007ff6`11ce48f0 प्रोग्राम! foo: : foo (शून्य) 00007ff6'11ceae90 कार्यक्रम! `foo :: foo '::` 1' :: dtor $ 0 (शून्य)   

मैं समझता हूँ कि पहले आउटपुट है foo < / कोड> का नाशक और तीसरा है foo के निर्माता दूसरे और चौथे लोग (बैकटीक्स वाले) क्या हैं? अधिक सामान्यतः, अन्य जगहें हैं जहां मुझे उपयोगकर्ता मोड डिबगर में बैकटीस दिखाई दे सकता है?

दिलचस्प है, बैकटीक फ़ंक्शंस समाप्त हो जाते हैं यदि निम्न में से कोई भी किया जाता है

  • std :: cout
  • निकालें std :: string s
  • निकालें throw ()

    "पोस्ट-टेक्स्ट" आइटमप्रॉप = "टेक्स्ट">

    ये माइक्रोसॉफ्ट कंपाइलर द्वारा "गोंद" फ़ंक्शंस के लिए तैयार किए गए आंतरिक नाम हैं जो चीजों को एक साथ फिट करने में मदद करते हैं, लेकिन सीधे स्रोत कोड की एक पंक्ति के अनुरूप नहीं होते हैं यह सामान्य है।

    ऐसी अन्य स्थितियां हैं, जहां आप लैम्ब्डा फ़ंक्शंस का उपयोग करते हुए, या किसी फ़ंक्शन को कॉल करते हुए किसी अन्य फ़ंक्शन के अंदर एक स्ट्रक्चर के अंदर घोषित किए जाने वाले बैकटीक्स के साथ समान आंतरिक नाम देखेंगे।

    अन्य कंपलर्स के कोड के समान नामों वाले ब्लॉकों का प्रतिनिधित्व करने के विभिन्न तरीके हैं; मानक यहां किसी भी विशेष व्यवहार को निर्देशित नहीं करता है, और यह केवल डिबगर के जरिए ही देखा जा सकता है।

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -