• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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