1
0
mirror of https://github.com/c64scene-ar/llvm-6502.git synced 2024-12-14 11:32:34 +00:00

[docs] Update the docs to remove my hedging about C++98 vs. C++11. =]

The switch has been thrown. While I'm still watching for any failures or
problems with this, the documentation can go ahead and move forward.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth 2014-03-01 02:48:03 +00:00
parent f06322b3ef
commit f468dea807

View File

@ -56,14 +56,13 @@ choice.
C++ Standard Versions
---------------------
LLVM and Clang are currently written using C++98/03 conforming code, with
selective use of C++11 features when they are present in the toolchain.
Projects like LLD and LLDB are already heavily using C++11 features.
However, LLVM and Clange are also in the process of switching to use C++11 as
the base line for standards conformance. Once completed, the same standard
baseline will be used for LLVM, Clang, and LLD. LLDB is pushing forward much
more aggressively and has their own baseline.
LLVM, Clang, and LLD are currently written using C++11 conforming code,
although we restrict ourselves to features which are available in the major
toolchains supported as host compilers. The LLDB project is even more
aggressive in the set of host compilers supported and thus uses still more
features. Regardless of the supported features, code is expected to (when
reasonable) be standard, portable, and modern C++11 code. We avoid unnecessary
vendor-specific extensions, etc.
C++ Standard Library
--------------------
@ -85,15 +84,12 @@ avoided. Also, there is much more detailed information on these subjects in the
Supported C++11 Language and Library Features
-------------------------------------------
.. warning::
This section is written to reflect the expected state **AFTER** the
transition to C++11 is complete for the LLVM source tree.
While LLVM, Clang, and LLD use C++11, not all features are available in all of
the toolchains which we support. The set of features supported for use in LLVM
is the intersection of those supported in MSVC 2012, GCC 4.7, and Clang 3.1.
The ultimate definition of this set is what build bots with those respective
toolchains accept. Don't argue with the build bots.
toolchains accept. Don't argue with the build bots. However, we have some
guidance below to help you know what to expect.
Each toolchain provides a good reference for what it accepts:
@ -158,10 +154,13 @@ being aware of:
missing. Fortunately, they are rarely needed.
* The locale support is incomplete.
Your best option if you cannot test on a Linux system is to minimize your use
of these features, and watch the Linux build bots to find out if your usage
triggered a bug. For example if you hit a type trait which doesn't work, we can
then add support to LLVM's traits header to emulate it.
Other than these areas you should assume the standard library is available and
working as expected until some build bot tells you otherwise. If you're in an
uncertain area of one of the above points, but you cannot test on a Linux
system, your best approach is to minimize your use of these features, and watch
the Linux build bots to find out if your usage triggered a bug. For example, if
you hit a type trait which doesn't work we can then add support to LLVM's
traits header to emulate it.
.. _the libstdc++ manual:
http://gcc.gnu.org/onlinedocs/gcc-4.7.3/libstdc++/manual/manual/status.html#status.iso.2011