diff --git a/doc/html/boost_typetraits/category/value_traits/operators.html b/doc/html/boost_typetraits/category/value_traits/operators.html index 588467d..e52ab9b 100644 --- a/doc/html/boost_typetraits/category/value_traits/operators.html +++ b/doc/html/boost_typetraits/category/value_traits/operators.html @@ -1148,7 +1148,15 @@ All traits are implemented the same way using preprocessor macros to avoid code duplication. The main files are in boost/type_traits/detail: has_binary_operator.hpp, has_prefix_operator.hpp - and has_postfix_operator.hpp. The example of prefix + and has_postfix_operator.hpp. +

+

+ Given a sufficiently conforming C++11 compiler, these traits are implemented + in a rather compact and straightforward way that should always give accurate + answers. +

+

+ In C++03 there is a legacy implementation, by way of example the prefix operator- is presented below:

@@ -1324,7 +1332,7 @@ Limitation
@@ -1333,21 +1341,22 @@

-Class Index

+Class Index

A C D E F H I M N O P R T

diff --git a/doc/html/index/s12.html b/doc/html/index/s12.html index e35106f..c1de26b 100644 --- a/doc/html/index/s12.html +++ b/doc/html/index/s12.html @@ -24,7 +24,7 @@

-Typedef Index

+Typedef Index

F R T V

diff --git a/doc/html/index/s13.html b/doc/html/index/s13.html index 12e43cb..7b8a852 100644 --- a/doc/html/index/s13.html +++ b/doc/html/index/s13.html @@ -24,7 +24,7 @@

-Macro Index

+Macro Index

B

diff --git a/doc/html/index/s14.html b/doc/html/index/s14.html index d516966..fb56f32 100644 --- a/doc/html/index/s14.html +++ b/doc/html/index/s14.html @@ -23,7 +23,7 @@

-Index

+Index

A B C D E F H I M N O P R T U V

diff --git a/doc/operators.qbk b/doc/operators.qbk index 67b3f07..435c148 100644 --- a/doc/operators.qbk +++ b/doc/operators.qbk @@ -247,7 +247,11 @@ All traits are implemented the same way using preprocessor macros to avoid code duplication. The main files are in [^boost/type_traits/detail]: [^has_binary_operator.hpp], [^has_prefix_operator.hpp] and [^has_postfix_operator.hpp]. -The example of prefix `operator-` is presented below: + +Given a sufficiently conforming C++11 compiler, these traits are implemented in a rather +compact and straightforward way that should always give accurate answers. + +In C++03 there is a legacy implementation, by way of example the prefix `operator-` is presented below: `` namespace boost { @@ -416,11 +420,11 @@ struct has_unary_minus : ::boost::integral_constant::value; // error: A::operator-() is private `` -* There is an issue if the operator exists only for type `A` and `B` is +* Prior to C++11, there is an issue if the operator exists only for type `A` and `B` is convertible to `A`. In this case, the compiler will report an ambiguous overload because both the existing operator and the one we provide (with argument of type `any`) need type conversion, so that none is preferred.