Currently there are defines like BOOST_LOCALE_ENABLE_CHAR16_T to enable char16_t and similar for others.
I find that a bit... difficult. We have BOOST_NO_CHAR16_T and similar to detect the availability automatically. So the defines are usually not required when that is used.
And the major obstacle: The library must be build with the same value (defined / not-defined) of those BOOST_LOCALE_ENABLE_CHAR*_T defines or the locale facets will have undefined IDs. But there is no way to know how the library was built.
Using the availability-test-macros one can assume, that if the library was built with a recent-ish compiler/standard then those types can be used.
So @artyom-beilis : Switch to using BOOST_NO_CHAR16_T and the like?
Currently there are defines like
BOOST_LOCALE_ENABLE_CHAR16_Tto enablechar16_tand similar for others.I find that a bit... difficult. We have
BOOST_NO_CHAR16_Tand similar to detect the availability automatically. So the defines are usually not required when that is used.And the major obstacle: The library must be build with the same value (defined / not-defined) of those
BOOST_LOCALE_ENABLE_CHAR*_Tdefines or the locale facets will have undefined IDs. But there is no way to know how the library was built.Using the availability-test-macros one can assume, that if the library was built with a recent-ish compiler/standard then those types can be used.
So @artyom-beilis : Switch to using
BOOST_NO_CHAR16_Tand the like?