1// (C) Copyright Beman Dawes 2008 2 3// Use, modification and distribution are subject to the 4// Boost Software License, Version 1.0. (See accompanying file 5// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7// See http://www.boost.org/libs/config for more information. 8 9// MACRO: BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 10// TITLE: C++0x explicit conversion operators unavailable 11// DESCRIPTION: The compiler does not support C++0x explicit conversion operators 12 13#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(BOOST_INTEL_STDCXX0X) 14# error This feature is not available in non-C++0x mode 15#endif 16 17namespace boost_no_cxx11_explicit_conversion_operators { 18 19void quiet_warning(int){} 20 21 struct foo { 22 explicit operator int() { return 1; } 23 }; 24 25int test() 26{ 27 foo f; 28 int i = int(f); 29 quiet_warning(i); 30 return 0; 31} 32 33} 34