diff --git a/test/lexical_cast_arrays_test.cpp b/test/lexical_cast_arrays_test.cpp index 703f75b..cb590d2 100644 --- a/test/lexical_cast_arrays_test.cpp +++ b/test/lexical_cast_arrays_test.cpp @@ -22,6 +22,14 @@ void testing_std_array_input_conversion(); using namespace boost; +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(_LIBCPP_VERSION) +#define BOOST_LC_RUNU16 +#endif + +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(_LIBCPP_VERSION) +#define BOOST_LC_RUNU32 +#endif + boost::unit_test::test_suite *init_unit_test_suite(int, char *[]) { unit_test::test_suite *suite = @@ -91,7 +99,7 @@ static void testing_template_array_output_on_spec_value(T val) #endif -#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#ifdef BOOST_LC_RUNU16 typedef ArrayT u16arr_type; typedef ArrayT u16short_arr_type; std::u16string u16ethalon(u"100"); @@ -109,7 +117,7 @@ static void testing_template_array_output_on_spec_value(T val) BOOST_CHECK_THROW(lexical_cast(val), boost::bad_lexical_cast); #endif -#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#ifdef BOOST_LC_RUNU32 typedef ArrayT u32arr_type; typedef ArrayT u32short_arr_type; std::u32string u32ethalon(U"100"); @@ -190,7 +198,7 @@ static void testing_template_array_output_on_char_value() #endif -#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#ifdef BOOST_LC_RUNU16 typedef ArrayT u16arr_type; typedef ArrayT u16short_arr_type; std::u16string u16ethalon(u"100"); @@ -217,7 +225,7 @@ static void testing_template_array_output_on_char_value() BOOST_CHECK_THROW(lexical_cast(val), boost::bad_lexical_cast); #endif -#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#ifdef BOOST_LC_RUNU32 typedef ArrayT u32arr_type; typedef ArrayT u32short_arr_type; std::u32string u32ethalon(U"100"); @@ -328,7 +336,7 @@ static void testing_generic_array_input_conversion() } #endif -#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#ifdef BOOST_LC_RUNU16 { const ArrayT var_zero_terminated_const_var_const_char = {{ u'1', u'0', u'0', u'\0'}}; BOOST_CHECK(lexical_cast(var_zero_terminated_const_var_const_char) == u"100"); @@ -339,7 +347,7 @@ static void testing_generic_array_input_conversion() } #endif -#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#ifdef BOOST_LC_RUNU32 { const ArrayT var_zero_terminated_const_var_const_char = {{ U'1', U'0', U'0', U'\0'}}; BOOST_CHECK(lexical_cast(var_zero_terminated_const_var_const_char) == U"100"); diff --git a/test/lexical_cast_integral_types_test.cpp b/test/lexical_cast_integral_types_test.cpp index c69e741..235287e 100644 --- a/test/lexical_cast_integral_types_test.cpp +++ b/test/lexical_cast_integral_types_test.cpp @@ -403,12 +403,12 @@ void test_conversion_from_to_integral_minimal() test_conversion_from_integral_to_char(wzero); test_conversion_from_char_to_integral(wzero); #endif -#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(_LIBCPP_VERSION) char16_t const u16zero = u'0'; test_conversion_from_integral_to_char(u16zero); test_conversion_from_char_to_integral(u16zero); #endif -#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(_LIBCPP_VERSION) char32_t const u32zero = u'0'; test_conversion_from_integral_to_char(u32zero); test_conversion_from_char_to_integral(u32zero); diff --git a/test/lexical_cast_iterator_range_test.cpp b/test/lexical_cast_iterator_range_test.cpp index 20d850c..1b4a3ef 100644 --- a/test/lexical_cast_iterator_range_test.cpp +++ b/test/lexical_cast_iterator_range_test.cpp @@ -27,6 +27,15 @@ using namespace boost; #define BOOST_LCAST_NO_WCHAR_T #endif + +#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(_LIBCPP_VERSION) +#define BOOST_LC_RUNU16 +#endif + +#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(_LIBCPP_VERSION) +#define BOOST_LC_RUNU32 +#endif + struct class_with_user_defined_sream_operators { int i; @@ -140,7 +149,7 @@ void test_it_range_using_char(CharT* one, CharT* eleven) BOOST_CHECK(lexical_cast(crng2) == L"1"); #endif -#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && defined(BOOST_STL_SUPPORTS_NEW_UNICODE_LOCALES) +#if defined(BOOST_LC_RUNU16) && defined(BOOST_STL_SUPPORTS_NEW_UNICODE_LOCALES) typedef std::basic_string my_char16_string; BOOST_CHECK(lexical_cast(rng1) == u"1"); BOOST_CHECK(lexical_cast(crng1) == u"1"); @@ -148,7 +157,7 @@ void test_it_range_using_char(CharT* one, CharT* eleven) BOOST_CHECK(lexical_cast(crng2) == u"1"); #endif -#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) && defined(BOOST_STL_SUPPORTS_NEW_UNICODE_LOCALES) +#if defined(BOOST_LC_RUNU32) && defined(BOOST_STL_SUPPORTS_NEW_UNICODE_LOCALES) typedef std::basic_string my_char32_string; BOOST_CHECK(lexical_cast(rng1) == U"1"); BOOST_CHECK(lexical_cast(crng1) == U"1"); @@ -200,7 +209,7 @@ void test_wchar_iterator_ranges() void test_char16_iterator_ranges() { -#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#if defined(BOOST_LC_RUNU16) typedef char16_t test_char_type; test_char_type data1[] = u"1"; test_char_type data2[] = u"11"; @@ -212,7 +221,7 @@ void test_char16_iterator_ranges() void test_char32_iterator_ranges() { -#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS) +#if defined(BOOST_LC_RUNU32) typedef char32_t test_char_type; test_char_type data1[] = U"1"; test_char_type data2[] = U"11";