// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and // distribute this software is granted provided this copyright notice appears // in all copies. This software is provided "as is" without express or implied // warranty, and with no claim as to its suitability for any purpose. // MACRO: BOOST_NO_INCLASS_MEMBER_INITIALIZATION // TITLE: inline member constant initialisation // DESCRIPTION: Compiler violates std::9.4.2/4. namespace boost_no_inclass_member_initialization{ struct UDT{}; template struct ice_or_helper { static const bool value = true; }; template <> struct ice_or_helper { static const bool value = false; }; template struct ice_or { static const bool value = ice_or_helper::value; }; template struct is_int { static const bool value = false; }; template <> struct is_int { static const bool value = true; }; int test() { typedef int a1[ice_or< is_int::value, is_int::value>::value ? 1 : -1]; return 0; } }