मैं वीएस 15.3 का उपयोग कर रहा हूं, जो एकीकृत सीमेक 3.8 का समर्थन करता है। मैं प्रत्येक विशिष्ट कंपेलरों के लिए झंडे लिखने के बिना सी ++ 17 को कैसे लक्षित कर सकता हूं? मेरे वर्तमान वैश्विक सेटिंग्स काम नहीं:सीएम + 0 में सी ++ 17 को सक्षम करने के लिए कैसे करें
# https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD.html
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# expected behaviour
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++lastest")
मैं CMake "/ एसटीडी: C++ नवीनतम" जोड़ने के लिए की उम्मीद जब वी.एस. समाधान फ़ाइलें पैदा करने या समकक्ष है, लेकिन कोई C++ 17 झंडे पाया गया था, में हुई संकलक त्रुटि:
C1189 #error: class template optional is only available with C++17.
सामान्य रूप में CMake प्रत्येक विशिष्ट संकलक के लिए झंडे लिखने के लिए की आवश्यकता को समाप्त नहीं करता है। – VTT
"वीएस 15.3" के साथ आपका मतलब विजुअल स्टूडियो 2017 पूर्वावलोकन 3 है? या आपका मतलब है कि विजुअल स्टूडियो 2015 अपडेट 3 (जो अधिक समर्थन नहीं करता है, अगर कोई है, सी ++ 17)? –
@ Somprogrammerdude मैं 'std :: वैकल्पिक' सुविधाओं का उपयोग कर रहा हूं, जिसका उपयोग मैं किया जा सकता है अगर मैं '/ std: C++ सबसे आखिरी"' सीएमकेक्सलिस्ट को मैन्युअल रूप से ध्वजांकित करता हूं '। – MiP