विजुअल स्टूडियो कम्युनिटी 2017 C++ मानक C++ 98 क्यों है?



visual-studio standards (1)

कल मैंने नवीनतम वीएस कम्युनिटी 2017 में अपग्रेड किया (पिछले एक पिछले साल स्थापित किया गया था) और सी ++ मानक की जांच करना चाहता था। इसलिए मैं निम्नलिखित कोड चलाता हूं जो इसे जांचता है, और जैसा कि यह पता चला है, मेरे पास C ++ 98 है:

#include<iostream>
using namespace std;
int main()
{
    cout << __cplusplus << endl;
    system("pause");
}

जो आउटपुट देता है

199,711

मेरे पास नवीनतम C ++ मानक क्यों नहीं है?

https://code.i-harness.com


__cplusplus का मान मौजूदा कोड को तोड़ने से बचने के लिए विज़ुअल स्टूडियो के वर्तमान संस्करणों के लिए डिफ़ॉल्ट रूप से जानबूझकर गैर-अनुरूप है। इसका मतलब यह नहीं है कि आपका संकलक किसी भी C ++ 11 (या नई) सुविधाओं का समर्थन नहीं करता है।

MSVC से उद्धृत करते हुए अब सही ढंग से __cplusplus की रिपोर्ट करता है :

/ Zc: __ cplusplus

आपको __cplusplus मैक्रो के अद्यतन मूल्य को देखने के लिए /Zc:__cplusplus स्विच के साथ संकलन करने की आवश्यकता है। हमने मैक्रो को डिफ़ॉल्ट रूप से अपडेट करने का प्रयास किया और पाया कि __cplusplus के मान को बदलने पर बहुत सारा कोड सही तरीके से संकलित नहीं होता है। हम 19.xx परिवार में MSVC के सभी छोटे संस्करणों के लिए /Zc:__cplusplus स्विच के उपयोग की आवश्यकता जारी रखेंगे।





standards