1 include(CheckCXXSourceCompiles)
2 MACRO(GMX_TEST_CXX11 VARIABLE FLAG)
4 set(CXX11_FLAG "-std=c++0x")
6 set(CXX11_FLAG "/Qstd=c++0x")
8 CHECK_CXX_COMPILER_FLAG("${CXX11_FLAG}" CXXFLAG_STD_CXX0X)
9 if(NOT CXXFLAG_STD_CXX0X)
12 set(CMAKE_REQUIRED_DEFINITIONS "${CXX11_FLAG}")
13 check_cxx_source_compiles(
18 A(int *i=NULL) : p(i) {} ;
19 std::unique_ptr<int> p;
22 typedef std::unique_ptr<int> intPointer;
23 intPointer p(new int(10));
24 std::vector<intPointer> v;
25 v.push_back(std::move(p));
27 v2.push_back(A()); //requires default move constructor
28 v2.push_back(A(new int(5))); //detects bug in ICC
30 set(CMAKE_REQUIRED_DEFINITIONS "")
32 set(${FLAG} ${CXX11_FLAG})