We have BOOST_NO_CXX11_HDR_INITIALIZER_LIST, which tells us whether we can
#include and use std::initializer_list; we also have
BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX, which tells us whether we can
use X{ 1, 2 }, or X x{ 1, 2}.
But we don't have a macro that tells us whether this:
struct X
{
int a, b;
};
void f( X x )
{
}
int main()
{
f( { 1, 2 } );
}
is supported.
This is a problem for
http://www.boost.org/development/tests/develop/developer/output/Sandia-intel...
because the test is guarded by BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX:
https://github.com/boostorg/smart_ptr/blob/develop/test/allocate_shared_arra...
and this macro is not set for Intel 13.1 in C++0x mode. Presumably the
compiler allows braced initialization, but not braced literals.