Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#7478 closed Bugs (fixed)

Compiles fails with compilers supporting char16_t and char32_t fails if the library doesn't provides std::u16string and std::u32string

Reported by: viboes Owned by: viboes
Milestone: Boost 1.52.0 Component: ratio
Version: Boost 1.51.0 Severity: Problem
Keywords: Cc:

Description

In file included from ratio_io/ratio_io_pass.cpp:16:
../../../boost/ratio/ratio_io.hpp:130:17: error: no type named 'u16string' in namespace 'std'
    static std::u16string symbol() {return std::u16string(1, u'a');}
           ~~~~~^

fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

    "/Users/viboes/clang/clang+llvm-3.1-x86_64-apple-darwin11/bin/clang++" -x c++ -std=c++11 -O0 -g -Wextra -Wno-long-long -pedantic -O0 -fno-inline -Wall -pedantic -g -DBOOST_ALL_NO_LIB=1 -DBOOST_ENABLE_WARNINGS -DBOOST_MPL_NEXT_PRIOR_EXT -DBOOST_RATIO_USES_MPL_ASSERT -DBOOST_RATIO_VERSION=2 -I"../../.." -c -o "../../../bin.v2/libs/ratio/test/ratio_io_pass.test/clang-darwin-3.1x/debug/ratio_io/ratio_io_pass.o" "ratio_io/ratio_io_pass.cpp"

Attachments (1)

7478.patch (5.0 KB ) - added by viboes 10 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 by viboes, 10 years ago

Status: newassigned

Currently there are no macros BOOST_NO_CXX11_U16STRING and BOOST_NO_CXX11_U32STRING signaling that the standard library doesn't provides std::u16string or std::u32string. The attached patch avoid the compile error when Boost.Config will provide these macros. In the mean time the user needs to define them explicitly while using Boost.ratio in these conditions.

Last edited 10 years ago by viboes (previous) (diff)

by viboes, 10 years ago

Attachment: 7478.patch added

comment:2 by viboes, 10 years ago

Summary: Compiles fails with compilers supporting char16_t and char32_t fails if the library don't provides std::u16string and std::u32stringCompiles fails with compilers supporting char16_t and char32_t fails if the library doesn't provides std::u16string and std::u32string

comment:3 by viboes, 10 years ago

Committed revision [80896].

comment:4 by viboes, 10 years ago

Milestone: To Be DeterminedBoost 1.52.0
Resolution: fixed
Status: assignedclosed

Merged [80920]

Last edited 10 years ago by viboes (previous) (diff)

comment:5 by viboes, 10 years ago

Committed in trunk revision [80946][80947] : Temporary definition of BOOST_NO_CXX11_U16STRING and BOOST_NO_CXX11_U32STRING waiting for their definition on Boost.Config.

Last edited 10 years ago by viboes (previous) (diff)
Note: See TracTickets for help on using tickets.