quantdev द्वारा अच्छे उत्तर के अलावा, जो मैंने ऊपर उठाया है, मैं यहां थोड़ी अधिक जानकारी प्रदान करना चाहता था (जो किसी टिप्पणी में फिट नहीं होगा)।
यहाँ एक सी ++ 11 अनुरूप प्रोग्राम है जो यह दर्शाता है एक कार्यान्वयन जीसी इंटरफ़ेस का समर्थन करता है या नहीं है:
#include <iostream>
#include <memory>
int
main()
{
#ifdef __STDCPP_STRICT_POINTER_SAFETY__
std::cout << __STDCPP_STRICT_POINTER_SAFETY__ << '\n';
#endif
switch (std::get_pointer_safety())
{
case std::pointer_safety::relaxed:
std::cout << "relaxed\n";
break;
case std::pointer_safety::preferred:
std::cout << "preferred\n";
break;
case std::pointer_safety::strict:
std::cout << "strict\n";
break;
}
}
का एक उत्पादन:
relaxed
का मतलब कार्यान्वयन एक छोटी सी है कि कार्यान्वयन जो कुछ भी नहीं करता है।
libC++ आउटपुट:
relaxed
वी.एस. 2015 के आउटपुट:
relaxed
जीसीसी 5.0 आउटपुट:
prog.cc: In function 'int main()':
prog.cc:10:13: error: 'get_pointer_safety' is not a member of 'std'
switch (std::get_pointer_safety())
^
स्रोत
2015-01-01 04:46:18