/* Copyright 2017 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ // MACRO: BOOST_NO_CXX11_SFINAE_EXPR // TITLE: C++11 SFINAE for expressions // DESCRIPTION: C++11 SFINAE for expressions not supported. namespace boost_no_cxx11_sfinae_expr { template struct ignore { typedef void type; }; template T& object(); template struct trait { static const int value = 0; }; template struct trait())>::type> { }; template struct result { static const int value = T::value; }; class type { void operator&() const { } }; int test() { return result >::value; } } /* boost_no_cxx11_sfinae_expr */