mirror of
https://github.com/boostorg/config.git
synced 2025-07-30 20:37:15 +02:00
Changed from boost_no_union_static_data to boost_no_cxx11_unrestricted_union, in both files and macro name. Implemented extended functionality for user-defined classes with non-trivial special member functions in test.
This commit is contained in:
@ -201,7 +201,7 @@ obj typeid : test_case.cpp : <define>TEST_BOOST_NO_TYPEID ;
|
|||||||
obj typename_with_ctor : test_case.cpp : <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR ;
|
obj typename_with_ctor : test_case.cpp : <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR ;
|
||||||
obj cxx11_unicode_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS ;
|
obj cxx11_unicode_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS ;
|
||||||
obj cxx11_unified_initialization_syntax : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX ;
|
obj cxx11_unified_initialization_syntax : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX ;
|
||||||
obj cxx11_union_static_data : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNION_STATIC_DATA ;
|
obj cxx11_unrestricted_union : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNRESTRICTED_UNION ;
|
||||||
obj boost_function_scope_using_declaration_breaks_adl : test_case.cpp : <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL ;
|
obj boost_function_scope_using_declaration_breaks_adl : test_case.cpp : <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL ;
|
||||||
obj using_declaration_overloads_from_typename_base : test_case.cpp : <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE ;
|
obj using_declaration_overloads_from_typename_base : test_case.cpp : <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE ;
|
||||||
obj using_template : test_case.cpp : <define>TEST_BOOST_NO_USING_TEMPLATE ;
|
obj using_template : test_case.cpp : <define>TEST_BOOST_NO_USING_TEMPLATE ;
|
||||||
|
@ -966,9 +966,9 @@
|
|||||||
# error "Defect macro BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX is defined."
|
# error "Defect macro BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX is defined."
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef TEST_BOOST_NO_CXX11_UNION_STATIC_DATA
|
#ifdef TEST_BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
# ifdef BOOST_NO_CXX11_UNION_STATIC_DATA
|
# ifdef BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
# error "Defect macro BOOST_NO_CXX11_UNION_STATIC_DATA is defined."
|
# error "Defect macro BOOST_NO_CXX11_UNRESTRICTED_UNION is defined."
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
@ -728,8 +728,9 @@ Unicode (`u8`, `u`, `U`) literals.
|
|||||||
[[`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
|
[[`BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX`][The compiler does not support
|
||||||
the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
|
the [@http://en.wikipedia.org/wiki/C%2B%2B0x#Uniform_initialization C++11 Unified Initialization Syntax].
|
||||||
]]
|
]]
|
||||||
[[`BOOST_NO_CXX11_UNION_STATIC_DATA`][The compiler does not support
|
[[`BOOST_NO_CXX11_UNRESTRICTED_UNION`][The compiler does not support an unrestricted union. This is
|
||||||
a union with static data.
|
a union that may contain static data as well as user-defined member data with non-trivial special
|
||||||
|
member functions.
|
||||||
]]
|
]]
|
||||||
[[`BOOST_NO_CXX11_USER_DEFINED_LITERALS`][The compiler does not support user defined literals.
|
[[`BOOST_NO_CXX11_USER_DEFINED_LITERALS`][The compiler does not support user defined literals.
|
||||||
]]
|
]]
|
||||||
|
@ -199,7 +199,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -253,7 +253,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !__has_feature(cxx_unrestricted_unions)
|
#if !__has_feature(cxx_unrestricted_unions)
|
||||||
# define BOOST_NO_CXX11_UNION_STATIC_DATA
|
# define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
||||||
|
@ -108,7 +108,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -220,7 +220,7 @@
|
|||||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
|
||||||
@ -294,7 +294,7 @@
|
|||||||
#undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
#undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
#undef BOOST_NO_CXX11_VARIADIC_MACROS
|
#undef BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
#undef BOOST_NO_CXX11_UNION_STATIC_DATA
|
#undef BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#undef BOOST_NO_SFINAE_EXPR
|
#undef BOOST_NO_SFINAE_EXPR
|
||||||
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#undef BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
#undef BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -270,7 +270,7 @@
|
|||||||
// C++0x features in 5.1 and later
|
// C++0x features in 5.1 and later
|
||||||
//
|
//
|
||||||
#if (BOOST_GCC_VERSION < 50100) || !defined(BOOST_GCC_CXX11)
|
#if (BOOST_GCC_VERSION < 50100) || !defined(BOOST_GCC_CXX11)
|
||||||
# define BOOST_NO_CXX11_UNION_STATIC_DATA
|
# define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++14 features in 4.9.0 and later
|
// C++14 features in 4.9.0 and later
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
# define BOOST_NO_CXX11_FINAL
|
# define BOOST_NO_CXX11_FINAL
|
||||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
# define BOOST_NO_CXX11_UNION_STATIC_DATA
|
# define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -125,7 +125,7 @@
|
|||||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
/*
|
/*
|
||||||
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
||||||
|
@ -505,9 +505,9 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
|||||||
# undef BOOST_NO_CXX11_FINAL
|
# undef BOOST_NO_CXX11_FINAL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// BOOST_NO_CXX11_UNION_STATIC_DATA
|
// BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 50100)) && (!defined(_MSC_VER))
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 50100)) && (!defined(_MSC_VER))
|
||||||
# undef BOOST_NO_CXX11_UNION_STATIC_DATA
|
# undef BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // defined(BOOST_INTEL_STDCXX0X)
|
#endif // defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
@ -127,7 +127,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -89,7 +89,7 @@
|
|||||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
# define BOOST_NO_CXX11_FINAL
|
# define BOOST_NO_CXX11_FINAL
|
||||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
# define BOOST_NO_CXX11_UNION_STATIC_DATA
|
# define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -123,7 +123,7 @@
|
|||||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
|
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
|
||||||
|
@ -138,7 +138,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
|
||||||
// C++ 14:
|
// C++ 14:
|
||||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
@ -197,7 +197,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !__has_feature(cxx_unrestricted_unions)
|
#if !__has_feature(cxx_unrestricted_unions)
|
||||||
# define BOOST_NO_CXX11_UNION_STATIC_DATA
|
# define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
||||||
|
@ -141,7 +141,7 @@
|
|||||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
#define BOOST_NO_CXX11_FINAL
|
#define BOOST_NO_CXX11_FINAL
|
||||||
#define BOOST_NO_CXX11_ALIGNAS
|
#define BOOST_NO_CXX11_ALIGNAS
|
||||||
#define BOOST_NO_CXX11_UNION_STATIC_DATA
|
#define BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
#define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
#define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
#define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
#define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
#define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
@ -595,9 +595,9 @@ test-suite "BOOST_NO_CXX11_UNICODE_LITERALS" :
|
|||||||
test-suite "BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX" :
|
test-suite "BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX" :
|
||||||
[ run ../no_unified_init_pass.cpp ]
|
[ run ../no_unified_init_pass.cpp ]
|
||||||
[ compile-fail ../no_unified_init_fail.cpp ] ;
|
[ compile-fail ../no_unified_init_fail.cpp ] ;
|
||||||
test-suite "BOOST_NO_CXX11_UNION_STATIC_DATA" :
|
test-suite "BOOST_NO_CXX11_UNRESTRICTED_UNION" :
|
||||||
[ run ../no_union_static_data_pass.cpp ]
|
[ run ../no_cxx11_unrestricted_union_pass.cpp ]
|
||||||
[ compile-fail ../no_union_static_data_fail.cpp ] ;
|
[ compile-fail ../no_cxx11_unrestricted_union_fail.cpp ] ;
|
||||||
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
|
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
|
||||||
[ run ../no_using_breaks_adl_pass.cpp ]
|
[ run ../no_using_breaks_adl_pass.cpp ]
|
||||||
[ compile-fail ../no_using_breaks_adl_fail.cpp ] ;
|
[ compile-fail ../no_using_breaks_adl_fail.cpp ] ;
|
||||||
|
55
test/boost_no_cxx11_unrestricted_union.ipp
Normal file
55
test/boost_no_cxx11_unrestricted_union.ipp
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// (C) Copyright Edward Diener 2019
|
||||||
|
|
||||||
|
// Use, modification and distribution are subject to the
|
||||||
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See http://www.boost.org/libs/config for more information.
|
||||||
|
|
||||||
|
// MACRO: BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
|
// TITLE: C++11 unrestricted union
|
||||||
|
// DESCRIPTION: The compiler does not support the C++11 unrestricted union
|
||||||
|
|
||||||
|
#include <new>
|
||||||
|
|
||||||
|
namespace boost_no_cxx11_unrestricted_union {
|
||||||
|
|
||||||
|
struct HoldsShort
|
||||||
|
{
|
||||||
|
short i;
|
||||||
|
HoldsShort();
|
||||||
|
};
|
||||||
|
|
||||||
|
HoldsShort::HoldsShort() : i(1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
union with_static_data
|
||||||
|
{
|
||||||
|
int a;
|
||||||
|
long b;
|
||||||
|
HoldsShort o;
|
||||||
|
with_static_data();
|
||||||
|
static int sd;
|
||||||
|
};
|
||||||
|
|
||||||
|
with_static_data::with_static_data() :
|
||||||
|
a(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int with_static_data::sd = 0;
|
||||||
|
|
||||||
|
int test()
|
||||||
|
{
|
||||||
|
with_static_data wsd;
|
||||||
|
wsd.a = 24;
|
||||||
|
wsd.b = 48L;
|
||||||
|
new(&wsd.o) HoldsShort;
|
||||||
|
wsd.o.i = 2;
|
||||||
|
with_static_data::sd = 1;
|
||||||
|
bool b = (wsd.o.i == 2 && with_static_data::sd == 1);
|
||||||
|
return b ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,34 +0,0 @@
|
|||||||
// (C) Copyright Edward Diener 2019
|
|
||||||
|
|
||||||
// Use, modification and distribution are subject to the
|
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
||||||
|
|
||||||
// See http://www.boost.org/libs/config for more information.
|
|
||||||
|
|
||||||
// MACRO: BOOST_NO_CXX11_UNION_STATIC_DATA
|
|
||||||
// TITLE: C++11 union with static data unavailable
|
|
||||||
// DESCRIPTION: The compiler does not support C++11 union with static data
|
|
||||||
|
|
||||||
namespace boost_no_cxx11_union_static_data {
|
|
||||||
|
|
||||||
union with_static_data
|
|
||||||
{
|
|
||||||
int a;
|
|
||||||
long b;
|
|
||||||
static int sd;
|
|
||||||
};
|
|
||||||
|
|
||||||
int with_static_data::sd = 0;
|
|
||||||
|
|
||||||
int test()
|
|
||||||
{
|
|
||||||
with_static_data wsd;
|
|
||||||
wsd.a = 24;
|
|
||||||
wsd.b = 48L;
|
|
||||||
with_static_data::sd = 1;
|
|
||||||
bool b = (wsd.b == 48L && with_static_data::sd == 1);
|
|
||||||
return b ? 0 : 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1145,7 +1145,7 @@ void print_boost_macros()
|
|||||||
PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
|
PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
|
||||||
PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
|
PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
|
||||||
PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
|
PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
|
||||||
PRINT_MACRO(BOOST_NO_CXX11_UNION_STATIC_DATA);
|
PRINT_MACRO(BOOST_NO_CXX11_UNRESTRICTED_UNION);
|
||||||
PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
|
PRINT_MACRO(BOOST_NO_CXX11_USER_DEFINED_LITERALS);
|
||||||
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
|
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_MACROS);
|
||||||
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
|
PRINT_MACRO(BOOST_NO_CXX11_VARIADIC_TEMPLATES);
|
||||||
|
@ -792,10 +792,10 @@ namespace boost_no_cxx11_unicode_literals = empty_boost;
|
|||||||
#else
|
#else
|
||||||
namespace boost_no_cxx11_unified_initialization_syntax = empty_boost;
|
namespace boost_no_cxx11_unified_initialization_syntax = empty_boost;
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_NO_CXX11_UNION_STATIC_DATA
|
#ifndef BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#include "boost_no_union_static_data.ipp"
|
#include "boost_no_cxx11_unrestricted_union.ipp"
|
||||||
#else
|
#else
|
||||||
namespace boost_no_cxx11_union_static_data = empty_boost;
|
namespace boost_no_cxx11_unrestricted_union = empty_boost;
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
#ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#include "boost_no_using_breaks_adl.ipp"
|
#include "boost_no_using_breaks_adl.ipp"
|
||||||
@ -1976,9 +1976,9 @@ int main( int, char *[] )
|
|||||||
std::cerr << "Failed test for BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
std::cerr << "Failed test for BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||||
++error_count;
|
++error_count;
|
||||||
}
|
}
|
||||||
if(0 != boost_no_cxx11_union_static_data::test())
|
if(0 != boost_no_cxx11_unrestricted_union::test())
|
||||||
{
|
{
|
||||||
std::cerr << "Failed test for BOOST_NO_CXX11_UNION_STATIC_DATA at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
std::cerr << "Failed test for BOOST_NO_CXX11_UNRESTRICTED_UNION at: " << __FILE__ << ":" << __LINE__ << std::endl;
|
||||||
++error_count;
|
++error_count;
|
||||||
}
|
}
|
||||||
if(0 != boost_function_scope_using_declaration_breaks_adl::test())
|
if(0 != boost_function_scope_using_declaration_breaks_adl::test())
|
||||||
|
@ -10,10 +10,10 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
// Test file for macro BOOST_NO_CXX11_UNION_STATIC_DATA
|
// Test file for macro BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
// This file should not compile, if it does then
|
// This file should not compile, if it does then
|
||||||
// BOOST_NO_CXX11_UNION_STATIC_DATA should not be defined.
|
// BOOST_NO_CXX11_UNRESTRICTED_UNION should not be defined.
|
||||||
// See file boost_no_union_static_data.ipp for details
|
// See file boost_no_cxx11_unrestricted_union.ipp for details
|
||||||
|
|
||||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||||
// the objective of this file:
|
// the objective of this file:
|
||||||
@ -24,14 +24,14 @@
|
|||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include "test.hpp"
|
#include "test.hpp"
|
||||||
|
|
||||||
#ifdef BOOST_NO_CXX11_UNION_STATIC_DATA
|
#ifdef BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#include "boost_no_union_static_data.ipp"
|
#include "boost_no_cxx11_unrestricted_union.ipp"
|
||||||
#else
|
#else
|
||||||
#error "this file should not compile"
|
#error "this file should not compile"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int main( int, char *[] )
|
int main( int, char *[] )
|
||||||
{
|
{
|
||||||
return boost_no_cxx11_union_static_data::test();
|
return boost_no_cxx11_unrestricted_union::test();
|
||||||
}
|
}
|
||||||
|
|
@ -10,10 +10,10 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
// Test file for macro BOOST_NO_CXX11_UNION_STATIC_DATA
|
// Test file for macro BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
// This file should compile, if it does not then
|
// This file should compile, if it does not then
|
||||||
// BOOST_NO_CXX11_UNION_STATIC_DATA should be defined.
|
// BOOST_NO_CXX11_UNRESTRICTED_UNION should be defined.
|
||||||
// See file boost_no_union_static_data.ipp for details
|
// See file boost_no_cxx11_unrestricted_union.ipp for details
|
||||||
|
|
||||||
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
// Must not have BOOST_ASSERT_CONFIG set; it defeats
|
||||||
// the objective of this file:
|
// the objective of this file:
|
||||||
@ -24,14 +24,14 @@
|
|||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include "test.hpp"
|
#include "test.hpp"
|
||||||
|
|
||||||
#ifndef BOOST_NO_CXX11_UNION_STATIC_DATA
|
#ifndef BOOST_NO_CXX11_UNRESTRICTED_UNION
|
||||||
#include "boost_no_union_static_data.ipp"
|
#include "boost_no_cxx11_unrestricted_union.ipp"
|
||||||
#else
|
#else
|
||||||
namespace boost_no_cxx11_union_static_data = empty_boost;
|
namespace boost_no_cxx11_unrestricted_union = empty_boost;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int main( int, char *[] )
|
int main( int, char *[] )
|
||||||
{
|
{
|
||||||
return boost_no_cxx11_union_static_data::test();
|
return boost_no_cxx11_unrestricted_union::test();
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue
Block a user