[/ Copyright (C) 2020 T. Zachary Laine
 /
 / Distributed under 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)
 /]
[section Compiler Support (with a Special Note About MSVC)]

_Text_ is written against the C++14 standard.  Specifically, _Text_ takes
advantage of C++14 constexpr support for much of _tv_'s implementation.

Clang versions 3.6 and later (which corresponds to XCode versions 6.4 or
later), and GCC versions 5 and later all work.

MSVC support has been tested with Visual Studio 2017.  Later versions are
expected to work as well.  Note that Visual Studio 2017 does not have correct
C++14 _ce_ support.

[important When building your own code that uses any of the collation
tailoring headers (under `boost/text/data/`), you must configure MSVC's source
encoding to be UTF-8.  Otherwise, the UTF-8 strings in those headers will be
misinterpreted to be whatever crazy encoding Windows defaults to.  The
compiler switch for this is `/source-charset:utf-8`.  Your life will be that
much sweeter if you use the more thorough-going flag `/utf8` instead.  This
latter flag changes the execution encoding as well.]

[heading C++20 Support]

The C++20 interfaces provided by _Text_ are only available when compiling in
C++20 mode.  At the time of this writing, only GCC 10 is known to work in
C++20 mode.

[note At the time of this writing, the C++20 interfaces include functions in
the `v2` namespace and all the types associated with transcoding and
normalization.  Eventually, all the interfaces will be concept-constrained. ]

[endsect]
