diff --git a/lexical_cast_test.cpp b/lexical_cast_test.cpp index 523d5fe..a3df60d 100644 --- a/lexical_cast_test.cpp +++ b/lexical_cast_test.cpp @@ -25,8 +25,7 @@ #if defined(BOOST_NO_STRINGSTREAM) || \ defined(BOOST_NO_STD_WSTRING) || \ defined(BOOST_NO_STD_LOCALE) || \ - defined(BOOST_NO_CWCHAR) || \ - defined(BOOST_MSVC) && (BOOST_MSVC <= 1200) + defined(BOOST_NO_INTRINSIC_WCHAR_T) #define DISABLE_WIDE_CHAR_SUPPORT #endif @@ -37,6 +36,7 @@ void test_conversion_to_int(); void test_conversion_to_double(); void test_conversion_to_bool(); void test_conversion_to_string(); +void test_conversion_from_to_wchar_t_alias(); void test_conversion_to_pointer(); void test_conversion_from_wchar_t(); void test_conversion_to_wchar_t(); @@ -51,6 +51,7 @@ unit_test_framework::test_suite *init_unit_test_suite(int, char **) suite->add(BOOST_TEST_CASE(test_conversion_to_int)); suite->add(BOOST_TEST_CASE(test_conversion_to_double)); suite->add(BOOST_TEST_CASE(test_conversion_to_bool)); + suite->add(BOOST_TEST_CASE(test_conversion_from_to_wchar_t_alias)); suite->add(BOOST_TEST_CASE(test_conversion_to_pointer)); suite->add(BOOST_TEST_CASE(test_conversion_to_string)); #ifndef DISABLE_WIDE_CHAR_SUPPORT @@ -180,6 +181,17 @@ void test_conversion_to_string() BOOST_CHECK_EQUAL("", lexical_cast(std::string(""))); } +void test_conversion_from_to_wchar_t_alias() +{ + BOOST_CHECK_EQUAL(123u, lexical_cast("123")); + BOOST_CHECK_EQUAL(123u, lexical_cast("123")); + BOOST_CHECK_EQUAL(123u, lexical_cast("123")); + BOOST_CHECK_EQUAL(std::string("123"), + lexical_cast(static_cast(123))); + BOOST_CHECK_EQUAL(std::string("123"), lexical_cast(123u)); + BOOST_CHECK_EQUAL(std::string("123"), lexical_cast(123ul)); +} + void test_conversion_to_pointer() { BOOST_CHECK_THROW(lexical_cast("Test"), boost::bad_lexical_cast);