From 3874a62b66babf981a3edfa4ebd54170385644f1 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Tue, 19 Mar 2013 19:04:44 +0000 Subject: [PATCH] Merge new traits & accumulated fixes from Trunk. [SVN r83499] --- doc/has_trivial_move_assign.qbk | 48 +++ doc/has_trivial_move_constructor.qbk | 49 +++ doc/history.qbk | 6 + doc/html/boost_typetraits/background.html | 24 +- doc/html/boost_typetraits/category.html | 2 +- .../boost_typetraits/category/alignment.html | 2 +- .../boost_typetraits/category/function.html | 2 +- .../boost_typetraits/category/transform.html | 4 +- .../category/value_traits.html | 2 +- .../category/value_traits/operators.html | 24 +- .../category/value_traits/primary.html | 2 +- .../category/value_traits/properties.html | 2 +- .../category/value_traits/relate.html | 2 +- doc/html/boost_typetraits/credits.html | 2 +- doc/html/boost_typetraits/examples.html | 2 +- doc/html/boost_typetraits/examples/copy.html | 2 +- .../boost_typetraits/examples/destruct.html | 2 +- doc/html/boost_typetraits/examples/fill.html | 2 +- .../examples/improved_min.html | 2 +- doc/html/boost_typetraits/examples/iter.html | 2 +- .../boost_typetraits/examples/to_double.html | 2 +- doc/html/boost_typetraits/history.html | 35 ++- doc/html/boost_typetraits/intrinsics.html | 44 ++- doc/html/boost_typetraits/intro.html | 2 +- doc/html/boost_typetraits/mpl.html | 2 +- doc/html/boost_typetraits/reference.html | 6 +- .../boost_typetraits/reference/add_const.html | 2 +- .../boost_typetraits/reference/add_cv.html | 2 +- .../reference/add_lvalue_reference.html | 2 +- .../reference/add_pointer.html | 2 +- .../reference/add_reference.html | 2 +- .../reference/add_rvalue_reference.html | 2 +- .../reference/add_volatile.html | 2 +- .../reference/aligned_storage.html | 2 +- .../reference/alignment_of.html | 2 +- .../reference/common_type.html | 18 +- .../reference/conditional.html | 2 +- .../boost_typetraits/reference/decay.html | 2 +- .../boost_typetraits/reference/extent.html | 2 +- .../reference/floating_point_promotion.html | 2 +- .../reference/function_traits.html | 4 +- .../reference/has_bit_and.html | 6 +- .../reference/has_bit_and_assign.html | 6 +- .../reference/has_bit_or.html | 6 +- .../reference/has_bit_or_assign.html | 6 +- .../reference/has_bit_xor.html | 6 +- .../reference/has_bit_xor_assign.html | 6 +- .../reference/has_complement.html | 6 +- .../reference/has_dereference.html | 6 +- .../reference/has_divides.html | 6 +- .../reference/has_divides_assign.html | 6 +- .../reference/has_equal_to.html | 6 +- .../reference/has_greater.html | 6 +- .../reference/has_greater_equal.html | 6 +- .../reference/has_left_shift.html | 6 +- .../reference/has_left_shift_assign.html | 6 +- .../boost_typetraits/reference/has_less.html | 6 +- .../reference/has_less_equal.html | 6 +- .../reference/has_logical_and.html | 6 +- .../reference/has_logical_not.html | 6 +- .../reference/has_logical_or.html | 6 +- .../boost_typetraits/reference/has_minus.html | 6 +- .../reference/has_minus_assign.html | 6 +- .../reference/has_modulus.html | 6 +- .../reference/has_modulus_assign.html | 6 +- .../reference/has_multiplies.html | 6 +- .../reference/has_multiplies_assign.html | 6 +- .../reference/has_negate.html | 6 +- .../reference/has_new_operator.html | 2 +- .../reference/has_no_throw_def_cons.html | 2 +- .../reference/has_not_equal_to.html | 6 +- .../reference/has_nothrow_assign.html | 2 +- .../reference/has_nothrow_constructor.html | 2 +- .../reference/has_nothrow_copy.html | 2 +- .../reference/has_nothrow_cp_cons.html | 2 +- .../boost_typetraits/reference/has_plus.html | 6 +- .../reference/has_plus_assign.html | 6 +- .../reference/has_post_decrement.html | 6 +- .../reference/has_post_increment.html | 6 +- .../reference/has_pre_decrement.html | 6 +- .../reference/has_pre_increment.html | 6 +- .../reference/has_right_shift.html | 6 +- .../reference/has_right_shift_assign.html | 6 +- .../reference/has_trivial_assign.html | 2 +- .../reference/has_trivial_constructor.html | 2 +- .../reference/has_trivial_copy.html | 2 +- .../reference/has_trivial_cp_cons.html | 2 +- .../reference/has_trivial_def_cons.html | 2 +- .../reference/has_trivial_destructor.html | 8 +- .../reference/has_trivial_move_assign.html | 102 ++++++ .../has_trivial_move_constructor.html | 102 ++++++ .../reference/has_unary_minus.html | 12 +- .../reference/has_unary_plus.html | 6 +- .../reference/has_virtual_destructor.html | 2 +- .../reference/integral_constant.html | 2 +- .../reference/integral_promotion.html | 2 +- .../reference/is_abstract.html | 2 +- .../reference/is_arithmetic.html | 2 +- .../boost_typetraits/reference/is_array.html | 2 +- .../reference/is_base_of.html | 2 +- .../boost_typetraits/reference/is_class.html | 2 +- .../reference/is_complex.html | 2 +- .../reference/is_compound.html | 2 +- .../boost_typetraits/reference/is_const.html | 2 +- .../reference/is_convertible.html | 2 +- .../boost_typetraits/reference/is_empty.html | 4 +- .../boost_typetraits/reference/is_enum.html | 2 +- .../reference/is_floating_point.html | 2 +- .../reference/is_function.html | 2 +- .../reference/is_fundamental.html | 2 +- .../reference/is_integral.html | 2 +- .../reference/is_lvalue_reference.html | 2 +- .../reference/is_member_function_pointer.html | 2 +- .../reference/is_member_object_pointer.html | 2 +- .../reference/is_member_pointer.html | 8 +- .../reference/is_nothrow_move_assignable.html | 83 +++++ .../is_nothrow_move_constructible.html | 81 +++++ .../boost_typetraits/reference/is_object.html | 8 +- .../boost_typetraits/reference/is_pod.html | 2 +- .../reference/is_pointer.html | 2 +- .../reference/is_polymorphic.html | 2 +- .../reference/is_reference.html | 2 +- .../reference/is_rvalue_reference.html | 2 +- .../boost_typetraits/reference/is_same.html | 2 +- .../boost_typetraits/reference/is_scalar.html | 2 +- .../boost_typetraits/reference/is_signed.html | 2 +- .../reference/is_stateless.html | 2 +- .../boost_typetraits/reference/is_union.html | 2 +- .../reference/is_unsigned.html | 2 +- .../reference/is_virtual_base_of.html | 2 +- .../boost_typetraits/reference/is_void.html | 2 +- .../reference/is_volatile.html | 2 +- .../reference/make_signed.html | 2 +- .../reference/make_unsigned.html | 2 +- .../boost_typetraits/reference/promote.html | 2 +- doc/html/boost_typetraits/reference/rank.html | 2 +- .../reference/remove_all_extents.html | 2 +- .../reference/remove_const.html | 2 +- .../boost_typetraits/reference/remove_cv.html | 2 +- .../reference/remove_extent.html | 2 +- .../reference/remove_pointer.html | 2 +- .../reference/remove_reference.html | 2 +- .../reference/remove_volatile.html | 2 +- .../reference/type_with_alignment.html | 2 +- doc/html/boost_typetraits/user_defined.html | 2 +- doc/html/index.html | 8 +- doc/html/index/s11.html | 88 +++--- doc/html/index/s12.html | 26 +- doc/html/index/s13.html | 64 ++-- doc/html/index/s14.html | 290 ++++++++++-------- doc/intrinsics.qbk | 9 +- doc/is_nothrow_move_assignable.qbk | 34 ++ doc/is_nothrow_move_constructible.qbk | 34 ++ doc/type_traits.qbk | 8 + include/boost/type_traits.hpp | 4 + .../detail/has_binary_operator.hpp | 2 +- .../type_traits/has_trivial_move_assign.hpp | 57 ++++ .../has_trivial_move_constructor.hpp | 57 ++++ include/boost/type_traits/intrinsics.hpp | 13 + .../is_nothrow_move_assignable.hpp | 84 +++++ .../is_nothrow_move_constructible.hpp | 84 +++++ include/boost/type_traits/is_pod.hpp | 4 +- test/has_trivial_move_assign_test.cpp | 210 +++++++++++++ test/has_trivial_move_constructor_test.cpp | 215 +++++++++++++ test/is_nothrow_move_assignable_test.cpp | 216 +++++++++++++ test/is_nothrow_move_constructible_test.cpp | 212 +++++++++++++ test/is_polymorphic_test.cpp | 4 + test/test.hpp | 12 + 168 files changed, 2312 insertions(+), 491 deletions(-) create mode 100644 doc/has_trivial_move_assign.qbk create mode 100644 doc/has_trivial_move_constructor.qbk create mode 100644 doc/html/boost_typetraits/reference/has_trivial_move_assign.html create mode 100644 doc/html/boost_typetraits/reference/has_trivial_move_constructor.html create mode 100644 doc/html/boost_typetraits/reference/is_nothrow_move_assignable.html create mode 100644 doc/html/boost_typetraits/reference/is_nothrow_move_constructible.html create mode 100644 doc/is_nothrow_move_assignable.qbk create mode 100644 doc/is_nothrow_move_constructible.qbk create mode 100644 include/boost/type_traits/has_trivial_move_assign.hpp create mode 100644 include/boost/type_traits/has_trivial_move_constructor.hpp create mode 100644 include/boost/type_traits/is_nothrow_move_assignable.hpp create mode 100644 include/boost/type_traits/is_nothrow_move_constructible.hpp create mode 100644 test/has_trivial_move_assign_test.cpp create mode 100644 test/has_trivial_move_constructor_test.cpp create mode 100644 test/is_nothrow_move_assignable_test.cpp create mode 100644 test/is_nothrow_move_constructible_test.cpp diff --git a/doc/has_trivial_move_assign.qbk b/doc/has_trivial_move_assign.qbk new file mode 100644 index 0000000..0fe04ce --- /dev/null +++ b/doc/has_trivial_move_assign.qbk @@ -0,0 +1,48 @@ +[/ + Copyright 2007 John Maddock. + Copyright 2013 Antony Polukhin. + 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:has_trivial_move_assign has_trivial_move_assign] + template + struct has_trivial_move_assign : public __tof {}; + +__inherit If T is a (possibly cv-qualified) type with a trivial move assignment-operator +then inherits from __true_type, otherwise inherits from __false_type. + +If a type has a trivial move assignment-operator then the operator has the same effect +as copying the bits of one object to the other: +calls to the operator can be safely replaced with a call to `memcpy`. + +__compat If the compiler does not support partial-specialization of class +templates, then this template can not be used with function types. + +Without some (as yet unspecified) help from the compiler, +has_trivial_move_assign will never report that a user-defined class or struct has a +trivial constructor; this is always safe, if possibly sub-optimal. +Currently (February 2013) compilers have no necessary __intrinsics to ensure that this +trait "just works". You may also test to see if the necessary __intrinsics are available +by checking to see if the macro `BOOST_HAS_TRIVIAL_MOVE_ASSIGN` is defined. + + +__header ` #include ` or ` #include ` + +__examples + +[:`has_trivial_move_assign` inherits from `__true_type`.] + +[:`has_trivial_move_assign::type` is the type `__true_type`.] + +[:`has_trivial_move_assign::value` is an integral constant +expression that evaluates to /true/.] + +[:`has_trivial_move_assign::value` is an integral constant +expression that evaluates to /false/.] + +[:`has_trivial_move_assign::value_type` is the type `bool`.] + +[endsect] + diff --git a/doc/has_trivial_move_constructor.qbk b/doc/has_trivial_move_constructor.qbk new file mode 100644 index 0000000..11b22c6 --- /dev/null +++ b/doc/has_trivial_move_constructor.qbk @@ -0,0 +1,49 @@ +[/ + Copyright 2007 John Maddock. + Copyright 2013 Antony Polukhin. + 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:has_trivial_move_constructor has_trivial_move_constructor] + + template + struct has_trivial_move_constructor : public __tof {}; + +__inherit If T is a (possibly cv-qualified) type with a trivial move-constructor +then inherits from __true_type, otherwise inherits from __false_type. + +If a type has a trivial move-constructor then the constructor has the same effect +as copying the bits of one object to the other: +calls to the constructor can be safely replaced with a call to `memcpy`. + +__compat If the compiler does not support partial-specialization of class +templates, then this template can not be used with function types. + +Without some (as yet unspecified) help from the compiler, +has_trivial_move_constructor will never report that a user-defined class or struct has a +trivial constructor; this is always safe, if possibly sub-optimal. +Currently (February 2013) compilers have no necessary __intrinsics to ensure that this +trait "just works". You may also test to see if the necessary __intrinsics are available +by checking to see if the macro `BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR` is defined. + + +__header ` #include ` or ` #include ` + +__examples + +[:`has_trivial_move_constructor` inherits from `__true_type`.] + +[:`has_trivial_move_constructor::type` is the type `__true_type`.] + +[:`has_trivial_move_constructor::value` is an integral constant +expression that evaluates to /true/.] + +[:`has_trivial_move_constructor::value` is an integral constant +expression that evaluates to /false/.] + +[:`has_trivial_move_constructor::value_type` is the type `bool`.] + +[endsect] + diff --git a/doc/history.qbk b/doc/history.qbk index 0cb2ce4..60aebf5 100644 --- a/doc/history.qbk +++ b/doc/history.qbk @@ -7,6 +7,12 @@ [section:history History] + +[h4 Boost 1.54.0] + +* Added new traits __is_nothrow_move_assignable, __is_nothrow_move_constructible, __has_trivial_move_assign, +__has_trivial_move_constructor. + [h4 Boost 1.47.0] * [* Breaking change]: changed __is_convertible to C++0x behaviour when possible. diff --git a/doc/html/boost_typetraits/background.html b/doc/html/boost_typetraits/background.html index 1971d4a..25487a9 100644 --- a/doc/html/boost_typetraits/background.html +++ b/doc/html/boost_typetraits/background.html @@ -3,7 +3,7 @@ Background and Tutorial - + @@ -57,7 +57,7 @@

- Type + Type Traits

@@ -86,7 +86,7 @@

- Implementation + Implementation

There are far too many separate classes contained in the type-traits library @@ -176,7 +176,7 @@

- Optimized + Optimized copy

@@ -195,7 +195,7 @@ copy in terms of memcpy all of the following conditions need to be met:

-
    +
    • Both of the iterator types Iter1 and Iter2 must be pointers. @@ -212,7 +212,7 @@

      By trivial assignment operator we mean that the type is either a scalar type[3] or:

      -
        +
        • The type has no user defined assignment operator.
        • @@ -250,7 +250,7 @@

          - Was + Was it worth it?

          @@ -267,7 +267,7 @@ comparison between algorithms becomes difficult. However, perhaps we can add a couple of caveats to the premature optimization rule:

          -
            +
            • If you use the right algorithm for the job in the first place then optimization will not be required; in some cases, memcpy is the right algorithm. @@ -383,7 +383,7 @@

            - Pair + Pair of References

            @@ -602,7 +602,7 @@

            - Conclusion + Conclusion

            We hope that in this article we have been able to give you some idea of what @@ -615,7 +615,7 @@

            - Acknowledgements + Acknowledgements

            The authors would like to thank Beman Dawes and Howard Hinnant for their helpful @@ -623,7 +623,7 @@

            - References + References
            1. diff --git a/doc/html/boost_typetraits/category.html b/doc/html/boost_typetraits/category.html index c74b6ed..b9c4f64 100644 --- a/doc/html/boost_typetraits/category.html +++ b/doc/html/boost_typetraits/category.html @@ -3,7 +3,7 @@ Type Traits by Category - + diff --git a/doc/html/boost_typetraits/category/alignment.html b/doc/html/boost_typetraits/category/alignment.html index 3515673..2a60e67 100644 --- a/doc/html/boost_typetraits/category/alignment.html +++ b/doc/html/boost_typetraits/category/alignment.html @@ -3,7 +3,7 @@ Synthesizing Types with Specific Alignments - + diff --git a/doc/html/boost_typetraits/category/function.html b/doc/html/boost_typetraits/category/function.html index fbb9e84..eef945d 100644 --- a/doc/html/boost_typetraits/category/function.html +++ b/doc/html/boost_typetraits/category/function.html @@ -3,7 +3,7 @@ Decomposing Function Types - + diff --git a/doc/html/boost_typetraits/category/transform.html b/doc/html/boost_typetraits/category/transform.html index daf5f22..6bbbd6c 100644 --- a/doc/html/boost_typetraits/category/transform.html +++ b/doc/html/boost_typetraits/category/transform.html @@ -3,7 +3,7 @@ Type Traits that Transform One Type to Another - + @@ -104,7 +104,7 @@
              - Broken + Broken Compiler Workarounds:

              diff --git a/doc/html/boost_typetraits/category/value_traits.html b/doc/html/boost_typetraits/category/value_traits.html index 490786e..3963c20 100644 --- a/doc/html/boost_typetraits/category/value_traits.html +++ b/doc/html/boost_typetraits/category/value_traits.html @@ -3,7 +3,7 @@ Type Traits that Describe the Properties of a Type - + diff --git a/doc/html/boost_typetraits/category/value_traits/operators.html b/doc/html/boost_typetraits/category/value_traits/operators.html index ab38440..130c9d7 100644 --- a/doc/html/boost_typetraits/category/value_traits/operators.html +++ b/doc/html/boost_typetraits/category/value_traits/operators.html @@ -3,7 +3,7 @@ Operator Type Traits - + @@ -29,7 +29,7 @@

        - Introduction + Introduction

        These traits are all value traits inheriting from @@ -65,7 +65,7 @@

        - Example + Example of application

        @@ -150,7 +150,7 @@

        - Description + Description

        The syntax is the following: @@ -162,7 +162,7 @@

        where:

        -
          +

          - Implementation + Implementation

          The implementation consists in only header files. The following headers @@ -1321,17 +1321,17 @@

          - Limitation + Limitation
          -
          • +
            • Requires a compiler with working SFINAE.
            - Known + Known issues
            -
              +
              • These traits cannot detect whether the operators are public or not: if an operator is defined as a private member of type T then the instantiation of the corresponding @@ -1411,7 +1411,7 @@
              - Acknowledgments + Acknowledgments

              Frederic Bron is very thankful to numerous people from the boost mailing diff --git a/doc/html/boost_typetraits/category/value_traits/primary.html b/doc/html/boost_typetraits/category/value_traits/primary.html index 0f4864c..65ea0fa 100644 --- a/doc/html/boost_typetraits/category/value_traits/primary.html +++ b/doc/html/boost_typetraits/category/value_traits/primary.html @@ -3,7 +3,7 @@ Categorizing a Type - + diff --git a/doc/html/boost_typetraits/category/value_traits/properties.html b/doc/html/boost_typetraits/category/value_traits/properties.html index 286e3bf..537ee3f 100644 --- a/doc/html/boost_typetraits/category/value_traits/properties.html +++ b/doc/html/boost_typetraits/category/value_traits/properties.html @@ -3,7 +3,7 @@ General Type Properties - + diff --git a/doc/html/boost_typetraits/category/value_traits/relate.html b/doc/html/boost_typetraits/category/value_traits/relate.html index 6379b8d..d870483 100644 --- a/doc/html/boost_typetraits/category/value_traits/relate.html +++ b/doc/html/boost_typetraits/category/value_traits/relate.html @@ -3,7 +3,7 @@ Relationships Between Two Types - + diff --git a/doc/html/boost_typetraits/credits.html b/doc/html/boost_typetraits/credits.html index 6cbf3c7..2aca081 100644 --- a/doc/html/boost_typetraits/credits.html +++ b/doc/html/boost_typetraits/credits.html @@ -3,7 +3,7 @@ Credits - + diff --git a/doc/html/boost_typetraits/examples.html b/doc/html/boost_typetraits/examples.html index 4bb5077..bab6342 100644 --- a/doc/html/boost_typetraits/examples.html +++ b/doc/html/boost_typetraits/examples.html @@ -3,7 +3,7 @@ Examples - + diff --git a/doc/html/boost_typetraits/examples/copy.html b/doc/html/boost_typetraits/examples/copy.html index 0d7cf7e..2d5b7c7 100644 --- a/doc/html/boost_typetraits/examples/copy.html +++ b/doc/html/boost_typetraits/examples/copy.html @@ -3,7 +3,7 @@ An Optimized Version of std::copy - + diff --git a/doc/html/boost_typetraits/examples/destruct.html b/doc/html/boost_typetraits/examples/destruct.html index 8bc3610..3a9f4ab 100644 --- a/doc/html/boost_typetraits/examples/destruct.html +++ b/doc/html/boost_typetraits/examples/destruct.html @@ -3,7 +3,7 @@ An Example that Omits Destructor Calls For Types with Trivial Destructors - + diff --git a/doc/html/boost_typetraits/examples/fill.html b/doc/html/boost_typetraits/examples/fill.html index fc5904d..28888fd 100644 --- a/doc/html/boost_typetraits/examples/fill.html +++ b/doc/html/boost_typetraits/examples/fill.html @@ -3,7 +3,7 @@ An Optimised Version of std::fill - + diff --git a/doc/html/boost_typetraits/examples/improved_min.html b/doc/html/boost_typetraits/examples/improved_min.html index 0e75d39..f4eaaad 100644 --- a/doc/html/boost_typetraits/examples/improved_min.html +++ b/doc/html/boost_typetraits/examples/improved_min.html @@ -3,7 +3,7 @@ Improving std::min with common_type - + diff --git a/doc/html/boost_typetraits/examples/iter.html b/doc/html/boost_typetraits/examples/iter.html index 125056f..4d7331e 100644 --- a/doc/html/boost_typetraits/examples/iter.html +++ b/doc/html/boost_typetraits/examples/iter.html @@ -3,7 +3,7 @@ An improved Version of std::iter_swap - + diff --git a/doc/html/boost_typetraits/examples/to_double.html b/doc/html/boost_typetraits/examples/to_double.html index 7e1e4ea..8404aad 100644 --- a/doc/html/boost_typetraits/examples/to_double.html +++ b/doc/html/boost_typetraits/examples/to_double.html @@ -3,7 +3,7 @@ Convert Numeric Types and Enums to double - + diff --git a/doc/html/boost_typetraits/history.html b/doc/html/boost_typetraits/history.html index 191be84..c61e057 100644 --- a/doc/html/boost_typetraits/history.html +++ b/doc/html/boost_typetraits/history.html @@ -3,7 +3,7 @@ History - + @@ -28,10 +28,21 @@

        - Boost + Boost + 1.54.0 +
        + +
        + + Boost 1.47.0
        -
          +
          • Breaking change: changed is_convertible to C++0x behaviour when possible. @@ -42,11 +53,11 @@
          - - Boost + + Boost 1.45.0
          -
            +
            - - Boost + + Boost 1.44.0
            -
              +
              • Added support for rvalue references throughout the library, plus two new traits classes is_rvalue_reference @@ -76,11 +87,11 @@
              - - Boost + + Boost 1.42.0
              -
              diff --git a/doc/html/boost_typetraits/intrinsics.html b/doc/html/boost_typetraits/intrinsics.html index e757bb1..7675b21 100644 --- a/doc/html/boost_typetraits/intrinsics.html +++ b/doc/html/boost_typetraits/intrinsics.html @@ -3,7 +3,7 @@ Support for Compiler Intrinsics - + @@ -30,14 +30,14 @@ There are some traits that can not be implemented within the current C++ language: to make these traits "just work" with user defined types, some kind of additional help from the compiler is required. Currently (April 2008) Visual - C++ 8 and 9, GNU GCC 4.3 and MWCW 9 provide the necessary intrinsics, and other - compilers will no doubt follow in due course. + C++ 8 and 9, GNU GCC 4.3 and MWCW 9 provide at least some of the the necessary + intrinsics, and other compilers will no doubt follow in due course.

              The Following traits classes always need compiler support to do the right thing for all types (but all have safe fallback positions if this support is unavailable):

              -
                +
                • is_union
                • @@ -50,9 +50,15 @@
                • has_trivial_copy
                • +
                • + has_trivial_move_constructor +
                • has_trivial_assign
                • +
                • + has_trivial_move_assign +
                • has_trivial_destructor
                • @@ -74,7 +80,7 @@ although in practice, the implementations do in fact do the right thing on all the compilers we know about:

                  -
                    +
                    • is_empty
                    • @@ -85,7 +91,7 @@

                      The following traits classes are dependent on one or more of the above:

                      -
                        +
                        • is_class
                        • @@ -169,6 +175,19 @@ + +

                          + BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) +

                          + + +

                          + Should evaluate to true if T has a trivial move constructor (and + can therefore be replaced by a call to memcpy) +

                          + + +

                          BOOST_HAS_TRIVIAL_ASSIGN(T) @@ -182,6 +201,19 @@ + +

                          + BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) +

                          + + +

                          + Should evaluate to true if T has a trivial move assignment operator + (and can therefore be replaced by a call to memcpy) +

                          + + +

                          BOOST_HAS_TRIVIAL_DESTRUCTOR(T) diff --git a/doc/html/boost_typetraits/intro.html b/doc/html/boost_typetraits/intro.html index 7938110..06c7783 100644 --- a/doc/html/boost_typetraits/intro.html +++ b/doc/html/boost_typetraits/intro.html @@ -3,7 +3,7 @@ Introduction - + diff --git a/doc/html/boost_typetraits/mpl.html b/doc/html/boost_typetraits/mpl.html index d171e28..3fdef35 100644 --- a/doc/html/boost_typetraits/mpl.html +++ b/doc/html/boost_typetraits/mpl.html @@ -3,7 +3,7 @@ MPL Interoperability - + diff --git a/doc/html/boost_typetraits/reference.html b/doc/html/boost_typetraits/reference.html index a3646f8..c5cf7f0 100644 --- a/doc/html/boost_typetraits/reference.html +++ b/doc/html/boost_typetraits/reference.html @@ -3,7 +3,7 @@ Alphabetical Reference - + @@ -90,6 +90,8 @@

                          has_trivial_copy_constructor
                          has_trivial_default_constructor
                          has_trivial_destructor
                          +
                          has_trivial_move_assign
                          +
                          has_trivial_move_constructor
                          has_unary_minus
                          has_unary_plus
                          has_virtual_destructor
                          @@ -114,6 +116,8 @@
                          is_member_function_pointer
                          is_member_object_pointer
                          is_member_pointer
                          +
                          is_nothrow_move_assignable
                          +
                          is_nothrow_move_constructible
                          is_object
                          is_pod
                          is_pointer
                          diff --git a/doc/html/boost_typetraits/reference/add_const.html b/doc/html/boost_typetraits/reference/add_const.html index b5b585e..ed2fddc 100644 --- a/doc/html/boost_typetraits/reference/add_const.html +++ b/doc/html/boost_typetraits/reference/add_const.html @@ -3,7 +3,7 @@ add_const - + diff --git a/doc/html/boost_typetraits/reference/add_cv.html b/doc/html/boost_typetraits/reference/add_cv.html index 6f659dd..0059bf3 100644 --- a/doc/html/boost_typetraits/reference/add_cv.html +++ b/doc/html/boost_typetraits/reference/add_cv.html @@ -3,7 +3,7 @@ add_cv - + diff --git a/doc/html/boost_typetraits/reference/add_lvalue_reference.html b/doc/html/boost_typetraits/reference/add_lvalue_reference.html index 0f23431..86e405b 100644 --- a/doc/html/boost_typetraits/reference/add_lvalue_reference.html +++ b/doc/html/boost_typetraits/reference/add_lvalue_reference.html @@ -3,7 +3,7 @@ add_lvalue_reference - + diff --git a/doc/html/boost_typetraits/reference/add_pointer.html b/doc/html/boost_typetraits/reference/add_pointer.html index aacb28c..f4c78de 100644 --- a/doc/html/boost_typetraits/reference/add_pointer.html +++ b/doc/html/boost_typetraits/reference/add_pointer.html @@ -3,7 +3,7 @@ add_pointer - + diff --git a/doc/html/boost_typetraits/reference/add_reference.html b/doc/html/boost_typetraits/reference/add_reference.html index b1a06ef..52fd54b 100644 --- a/doc/html/boost_typetraits/reference/add_reference.html +++ b/doc/html/boost_typetraits/reference/add_reference.html @@ -3,7 +3,7 @@ add_reference - + diff --git a/doc/html/boost_typetraits/reference/add_rvalue_reference.html b/doc/html/boost_typetraits/reference/add_rvalue_reference.html index c0cbbec..5034593 100644 --- a/doc/html/boost_typetraits/reference/add_rvalue_reference.html +++ b/doc/html/boost_typetraits/reference/add_rvalue_reference.html @@ -3,7 +3,7 @@ add_rvalue_reference - + diff --git a/doc/html/boost_typetraits/reference/add_volatile.html b/doc/html/boost_typetraits/reference/add_volatile.html index 7c7940a..534db26 100644 --- a/doc/html/boost_typetraits/reference/add_volatile.html +++ b/doc/html/boost_typetraits/reference/add_volatile.html @@ -3,7 +3,7 @@ add_volatile - + diff --git a/doc/html/boost_typetraits/reference/aligned_storage.html b/doc/html/boost_typetraits/reference/aligned_storage.html index ff2fa68..bb10f74 100644 --- a/doc/html/boost_typetraits/reference/aligned_storage.html +++ b/doc/html/boost_typetraits/reference/aligned_storage.html @@ -3,7 +3,7 @@ aligned_storage - + diff --git a/doc/html/boost_typetraits/reference/alignment_of.html b/doc/html/boost_typetraits/reference/alignment_of.html index c7dbc3c..08014df 100644 --- a/doc/html/boost_typetraits/reference/alignment_of.html +++ b/doc/html/boost_typetraits/reference/alignment_of.html @@ -3,7 +3,7 @@ alignment_of - + diff --git a/doc/html/boost_typetraits/reference/common_type.html b/doc/html/boost_typetraits/reference/common_type.html index b0d6f15..0574e45 100644 --- a/doc/html/boost_typetraits/reference/common_type.html +++ b/doc/html/boost_typetraits/reference/common_type.html @@ -3,7 +3,7 @@ common_type - + @@ -76,14 +76,14 @@

                          - Configuration + Configuration macros

                          When the compiler does not support static assertions then the user can select the way static assertions are reported. Define

                          -
                            +
                            • BOOST_COMMON_TYPE_USES_STATIC_ASSERT: define it if you want to use Boost.StaticAssert
                            • @@ -106,7 +106,7 @@

                              - Tutorial + Tutorial

                              In a nutshell, common_type @@ -141,7 +141,7 @@

                              - How + How to get the common type of types with explicit conversions?

                              @@ -163,7 +163,7 @@

                              - How + How important is the order of the common_type<> template arguments?

                              @@ -243,7 +243,7 @@

                              - Can + Can the common_type of two types be a third type?

                              @@ -270,7 +270,7 @@

                              - How + How common_type behaves with pointers?

                              @@ -306,7 +306,7 @@

                              - Can + Can you explain the pros/cons of common_type against Boost.Typeof?

                              diff --git a/doc/html/boost_typetraits/reference/conditional.html b/doc/html/boost_typetraits/reference/conditional.html index d00f610..53cb548 100644 --- a/doc/html/boost_typetraits/reference/conditional.html +++ b/doc/html/boost_typetraits/reference/conditional.html @@ -3,7 +3,7 @@ conditional - + diff --git a/doc/html/boost_typetraits/reference/decay.html b/doc/html/boost_typetraits/reference/decay.html index f34a813..493fbcc 100644 --- a/doc/html/boost_typetraits/reference/decay.html +++ b/doc/html/boost_typetraits/reference/decay.html @@ -3,7 +3,7 @@ decay - + diff --git a/doc/html/boost_typetraits/reference/extent.html b/doc/html/boost_typetraits/reference/extent.html index 131d212..7903591 100644 --- a/doc/html/boost_typetraits/reference/extent.html +++ b/doc/html/boost_typetraits/reference/extent.html @@ -3,7 +3,7 @@ extent - + diff --git a/doc/html/boost_typetraits/reference/floating_point_promotion.html b/doc/html/boost_typetraits/reference/floating_point_promotion.html index ee2bb3b..9135fa5 100644 --- a/doc/html/boost_typetraits/reference/floating_point_promotion.html +++ b/doc/html/boost_typetraits/reference/floating_point_promotion.html @@ -3,7 +3,7 @@ floating_point_promotion - + diff --git a/doc/html/boost_typetraits/reference/function_traits.html b/doc/html/boost_typetraits/reference/function_traits.html index 84c21ac..db3e61f 100644 --- a/doc/html/boost_typetraits/reference/function_traits.html +++ b/doc/html/boost_typetraits/reference/function_traits.html @@ -3,7 +3,7 @@ function_traits - + @@ -37,7 +37,7 @@

                              The class template function_traits will only compile if:

                              -
                                +
                                • The compiler supports partial specialization of class templates.
                                • diff --git a/doc/html/boost_typetraits/reference/has_bit_and.html b/doc/html/boost_typetraits/reference/has_bit_and.html index c2a1f44..92cfff5 100644 --- a/doc/html/boost_typetraits/reference/has_bit_and.html +++ b/doc/html/boost_typetraits/reference/has_bit_and.html @@ -3,7 +3,7 @@ has_bit_and - + @@ -102,13 +102,13 @@

                                  Limitation:

                                  -
                                  • +
                                    • Requires a compiler with working SFINAE.

                                    Known issues:

                                    -
                                      +
                                      • This trait cannot detect whether binary operator& is public or not: if operator& is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_bit_and_assign.html b/doc/html/boost_typetraits/reference/has_bit_and_assign.html index 8ebf0e0..86f94b7 100644 --- a/doc/html/boost_typetraits/reference/has_bit_and_assign.html +++ b/doc/html/boost_typetraits/reference/has_bit_and_assign.html @@ -3,7 +3,7 @@ has_bit_and_assign - + @@ -102,13 +102,13 @@

                                        Limitation:

                                        -
                                        • +
                                          • Requires a compiler with working SFINAE.

                                          Known issues:

                                          -
                                            +
                                            • This trait cannot detect whether binary operator&= is public or not: if operator&= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_bit_or.html b/doc/html/boost_typetraits/reference/has_bit_or.html index 9b4e62d..11dc514 100644 --- a/doc/html/boost_typetraits/reference/has_bit_or.html +++ b/doc/html/boost_typetraits/reference/has_bit_or.html @@ -3,7 +3,7 @@ has_bit_or - + @@ -102,13 +102,13 @@

                                              Limitation:

                                              -
                                              • +
                                                • Requires a compiler with working SFINAE.

                                                Known issues:

                                                -
                                                  +
                                                  • This trait cannot detect whether binary operator| is public or not: if operator| is defined as a private member of Lhs then instantiating has_bit_or<Lhs> will produce a compiler error. For this reason has_bit_or diff --git a/doc/html/boost_typetraits/reference/has_bit_or_assign.html b/doc/html/boost_typetraits/reference/has_bit_or_assign.html index 9f351e1..19cccae 100644 --- a/doc/html/boost_typetraits/reference/has_bit_or_assign.html +++ b/doc/html/boost_typetraits/reference/has_bit_or_assign.html @@ -3,7 +3,7 @@ has_bit_or_assign - + @@ -102,13 +102,13 @@

                                                    Limitation:

                                                    -
                                                    • +
                                                      • Requires a compiler with working SFINAE.

                                                      Known issues:

                                                      -
                                                        +
                                                        • This trait cannot detect whether binary operator|= is public or not: if operator|= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_bit_xor.html b/doc/html/boost_typetraits/reference/has_bit_xor.html index dae2cb5..ab331c9 100644 --- a/doc/html/boost_typetraits/reference/has_bit_xor.html +++ b/doc/html/boost_typetraits/reference/has_bit_xor.html @@ -3,7 +3,7 @@ has_bit_xor - + @@ -102,13 +102,13 @@

                                                          Limitation:

                                                          -
                                                          • +
                                                            • Requires a compiler with working SFINAE.

                                                            Known issues:

                                                            -
                                                              +
                                                              • This trait cannot detect whether binary operator^ is public or not: if operator^ is defined as a private member of Lhs then instantiating has_bit_xor<Lhs> will produce a compiler error. For this reason has_bit_xor diff --git a/doc/html/boost_typetraits/reference/has_bit_xor_assign.html b/doc/html/boost_typetraits/reference/has_bit_xor_assign.html index b045b4f..bd128d5 100644 --- a/doc/html/boost_typetraits/reference/has_bit_xor_assign.html +++ b/doc/html/boost_typetraits/reference/has_bit_xor_assign.html @@ -3,7 +3,7 @@ has_bit_xor_assign - + @@ -102,13 +102,13 @@

                                                                Limitation:

                                                                -
                                                                • +
                                                                  • Requires a compiler with working SFINAE.

                                                                  Known issues:

                                                                  -
                                                                    +
                                                                    • This trait cannot detect whether binary operator^= is public or not: if operator^= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_complement.html b/doc/html/boost_typetraits/reference/has_complement.html index b09646b..0386fe2 100644 --- a/doc/html/boost_typetraits/reference/has_complement.html +++ b/doc/html/boost_typetraits/reference/has_complement.html @@ -3,7 +3,7 @@ has_complement - + @@ -111,13 +111,13 @@

                                                                      Limitation:

                                                                      -
                                                                      • +
                                                                        • Requires a compiler with working SFINAE.

                                                                        Known issues:

                                                                        -
                                                                          +
                                                                          • This trait cannot detect whether prefix operator~ is public or not: if operator~ is defined as a private member of Rhs then instantiating has_complement<Rhs> will produce a compiler error. For this reason has_complement diff --git a/doc/html/boost_typetraits/reference/has_dereference.html b/doc/html/boost_typetraits/reference/has_dereference.html index a7ddfe0..93f7609 100644 --- a/doc/html/boost_typetraits/reference/has_dereference.html +++ b/doc/html/boost_typetraits/reference/has_dereference.html @@ -3,7 +3,7 @@ has_dereference - + @@ -120,13 +120,13 @@

                                                                            Limitation:

                                                                            -
                                                                            • +
                                                                              • Requires a compiler with working SFINAE.

                                                                              Known issues:

                                                                              -
                                                                                +
                                                                                • This trait cannot detect whether prefix operator* is public or not: if operator* is defined as a private member of Rhs then instantiating has_dereference<Rhs> will produce a compiler error. For this reason has_dereference diff --git a/doc/html/boost_typetraits/reference/has_divides.html b/doc/html/boost_typetraits/reference/has_divides.html index 0b04e5c..978e6a0 100644 --- a/doc/html/boost_typetraits/reference/has_divides.html +++ b/doc/html/boost_typetraits/reference/has_divides.html @@ -3,7 +3,7 @@ has_divides - + @@ -108,13 +108,13 @@

                                                                                  Limitation:

                                                                                  -
                                                                                  • +
                                                                                    • Requires a compiler with working SFINAE.

                                                                                    Known issues:

                                                                                    -
                                                                                      +
                                                                                      • This trait cannot detect whether binary operator/ is public or not: if operator/ is defined as a private member of Lhs then instantiating has_divides<Lhs> will produce a compiler error. For this reason has_divides diff --git a/doc/html/boost_typetraits/reference/has_divides_assign.html b/doc/html/boost_typetraits/reference/has_divides_assign.html index 9480e6d..8bc5b39 100644 --- a/doc/html/boost_typetraits/reference/has_divides_assign.html +++ b/doc/html/boost_typetraits/reference/has_divides_assign.html @@ -3,7 +3,7 @@ has_divides_assign - + @@ -108,13 +108,13 @@

                                                                                        Limitation:

                                                                                        -
                                                                                        • +
                                                                                          • Requires a compiler with working SFINAE.

                                                                                          Known issues:

                                                                                          -
                                                                                            +
                                                                                            • This trait cannot detect whether binary operator/= is public or not: if operator/= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_equal_to.html b/doc/html/boost_typetraits/reference/has_equal_to.html index c5f2896..e8f83e8 100644 --- a/doc/html/boost_typetraits/reference/has_equal_to.html +++ b/doc/html/boost_typetraits/reference/has_equal_to.html @@ -3,7 +3,7 @@ has_equal_to - + @@ -107,13 +107,13 @@

                                                                                              Limitation:

                                                                                              -
                                                                                              • +
                                                                                                • Requires a compiler with working SFINAE.

                                                                                                Known issues:

                                                                                                -
                                                                                                  +
                                                                                                  • This trait cannot detect whether binary operator== is public or not: if operator== is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_greater.html b/doc/html/boost_typetraits/reference/has_greater.html index f036e73..ad48683 100644 --- a/doc/html/boost_typetraits/reference/has_greater.html +++ b/doc/html/boost_typetraits/reference/has_greater.html @@ -3,7 +3,7 @@ has_greater - + @@ -107,13 +107,13 @@

                                                                                                    Limitation:

                                                                                                    -
                                                                                                    • +
                                                                                                      • Requires a compiler with working SFINAE.

                                                                                                      Known issues:

                                                                                                      -
                                                                                                        +
                                                                                                        • This trait cannot detect whether binary operator> is public or not: if operator> is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_greater_equal.html b/doc/html/boost_typetraits/reference/has_greater_equal.html index f42e2fc..275e99c 100644 --- a/doc/html/boost_typetraits/reference/has_greater_equal.html +++ b/doc/html/boost_typetraits/reference/has_greater_equal.html @@ -3,7 +3,7 @@ has_greater_equal - + @@ -107,13 +107,13 @@

                                                                                                          Limitation:

                                                                                                          -
                                                                                                          • +
                                                                                                            • Requires a compiler with working SFINAE.

                                                                                                            Known issues:

                                                                                                            -
                                                                                                              +
                                                                                                              • This trait cannot detect whether binary operator>= is public or not: if operator>= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_left_shift.html b/doc/html/boost_typetraits/reference/has_left_shift.html index cd3926a..b68a004 100644 --- a/doc/html/boost_typetraits/reference/has_left_shift.html +++ b/doc/html/boost_typetraits/reference/has_left_shift.html @@ -3,7 +3,7 @@ has_left_shift - + @@ -114,13 +114,13 @@

                                                                                                                Limitation:

                                                                                                                -
                                                                                                                • +
                                                                                                                  • Requires a compiler with working SFINAE.

                                                                                                                  Known issues:

                                                                                                                  -
                                                                                                                    +
                                                                                                                    • This trait cannot detect whether binary operator<< is public or not: if operator<< is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_left_shift_assign.html b/doc/html/boost_typetraits/reference/has_left_shift_assign.html index 01b7ed4..f300962 100644 --- a/doc/html/boost_typetraits/reference/has_left_shift_assign.html +++ b/doc/html/boost_typetraits/reference/has_left_shift_assign.html @@ -3,7 +3,7 @@ has_left_shift_assign - + @@ -102,13 +102,13 @@

                                                                                                                      Limitation:

                                                                                                                      -
                                                                                                                      • +
                                                                                                                        • Requires a compiler with working SFINAE.

                                                                                                                        Known issues:

                                                                                                                        -
                                                                                                                          +
                                                                                                                          • This trait cannot detect whether binary operator<<= is public or not: if operator<<= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_less.html b/doc/html/boost_typetraits/reference/has_less.html index 7b58fc1..f6af61f 100644 --- a/doc/html/boost_typetraits/reference/has_less.html +++ b/doc/html/boost_typetraits/reference/has_less.html @@ -3,7 +3,7 @@ has_less - + @@ -107,13 +107,13 @@

                                                                                                                            Limitation:

                                                                                                                            -
                                                                                                                            • +
                                                                                                                              • Requires a compiler with working SFINAE.

                                                                                                                              Known issues:

                                                                                                                              -
                                                                                                                                +
                                                                                                                                • This trait cannot detect whether binary operator< is public or not: if operator< is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_less_equal.html b/doc/html/boost_typetraits/reference/has_less_equal.html index e5fe59a..6530ed2 100644 --- a/doc/html/boost_typetraits/reference/has_less_equal.html +++ b/doc/html/boost_typetraits/reference/has_less_equal.html @@ -3,7 +3,7 @@ has_less_equal - + @@ -107,13 +107,13 @@

                                                                                                                                  Limitation:

                                                                                                                                  -
                                                                                                                                  • +
                                                                                                                                    • Requires a compiler with working SFINAE.

                                                                                                                                    Known issues:

                                                                                                                                    -
                                                                                                                                      +
                                                                                                                                      • This trait cannot detect whether binary operator<= is public or not: if operator<= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_logical_and.html b/doc/html/boost_typetraits/reference/has_logical_and.html index 009830a..0878667 100644 --- a/doc/html/boost_typetraits/reference/has_logical_and.html +++ b/doc/html/boost_typetraits/reference/has_logical_and.html @@ -3,7 +3,7 @@ has_logical_and - + @@ -105,13 +105,13 @@

                                                                                                                                        Limitation:

                                                                                                                                        -
                                                                                                                                        • +
                                                                                                                                          • Requires a compiler with working SFINAE.

                                                                                                                                          Known issues:

                                                                                                                                          -
                                                                                                                                            +
                                                                                                                                            • This trait cannot detect whether binary operator&& is public or not: if operator&& is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_logical_not.html b/doc/html/boost_typetraits/reference/has_logical_not.html index bdc8ddf..73b0efc 100644 --- a/doc/html/boost_typetraits/reference/has_logical_not.html +++ b/doc/html/boost_typetraits/reference/has_logical_not.html @@ -3,7 +3,7 @@ has_logical_not - + @@ -107,13 +107,13 @@

                                                                                                                                              Limitation:

                                                                                                                                              -
                                                                                                                                              • +
                                                                                                                                                • Requires a compiler with working SFINAE.

                                                                                                                                                Known issues:

                                                                                                                                                -
                                                                                                                                                  +
                                                                                                                                                  • This trait cannot detect whether prefix operator! is public or not: if operator! is defined as a private member of Rhs then instantiating has_logical_not<Rhs> will produce a compiler error. For this reason has_logical_not diff --git a/doc/html/boost_typetraits/reference/has_logical_or.html b/doc/html/boost_typetraits/reference/has_logical_or.html index 71901b9..5b56ceb 100644 --- a/doc/html/boost_typetraits/reference/has_logical_or.html +++ b/doc/html/boost_typetraits/reference/has_logical_or.html @@ -3,7 +3,7 @@ has_logical_or - + @@ -105,13 +105,13 @@

                                                                                                                                                    Limitation:

                                                                                                                                                    -
                                                                                                                                                    • +
                                                                                                                                                      • Requires a compiler with working SFINAE.

                                                                                                                                                      Known issues:

                                                                                                                                                      -
                                                                                                                                                        +
                                                                                                                                                        • This trait cannot detect whether binary operator|| is public or not: if operator|| is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_minus.html b/doc/html/boost_typetraits/reference/has_minus.html index 0a46a81..93af2fd 100644 --- a/doc/html/boost_typetraits/reference/has_minus.html +++ b/doc/html/boost_typetraits/reference/has_minus.html @@ -3,7 +3,7 @@ has_minus - + @@ -108,13 +108,13 @@

                                                                                                                                                          Limitation:

                                                                                                                                                          -
                                                                                                                                                          • +
                                                                                                                                                            • Requires a compiler with working SFINAE.

                                                                                                                                                            Known issues:

                                                                                                                                                            -
                                                                                                                                                              +
                                                                                                                                                              • This trait cannot detect whether binary operator- is public or not: if operator- is defined as a private member of Lhs then instantiating has_minus<Lhs> will produce a compiler error. For this reason has_minus diff --git a/doc/html/boost_typetraits/reference/has_minus_assign.html b/doc/html/boost_typetraits/reference/has_minus_assign.html index e0dbb60..95a31a2 100644 --- a/doc/html/boost_typetraits/reference/has_minus_assign.html +++ b/doc/html/boost_typetraits/reference/has_minus_assign.html @@ -3,7 +3,7 @@ has_minus_assign - + @@ -108,13 +108,13 @@

                                                                                                                                                                Limitation:

                                                                                                                                                                -
                                                                                                                                                                • +
                                                                                                                                                                  • Requires a compiler with working SFINAE.

                                                                                                                                                                  Known issues:

                                                                                                                                                                  -
                                                                                                                                                                    +
                                                                                                                                                                    • This trait cannot detect whether binary operator-= is public or not: if operator-= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_modulus.html b/doc/html/boost_typetraits/reference/has_modulus.html index 782ef62..48592b6 100644 --- a/doc/html/boost_typetraits/reference/has_modulus.html +++ b/doc/html/boost_typetraits/reference/has_modulus.html @@ -3,7 +3,7 @@ has_modulus - + @@ -101,13 +101,13 @@

                                                                                                                                                                      Limitation:

                                                                                                                                                                      -
                                                                                                                                                                      • +
                                                                                                                                                                        • Requires a compiler with working SFINAE.

                                                                                                                                                                        Known issues:

                                                                                                                                                                        -
                                                                                                                                                                          +
                                                                                                                                                                          • This trait cannot detect whether binary operator% is public or not: if operator% is defined as a private member of Lhs then instantiating has_modulus<Lhs> will produce a compiler error. For this reason has_modulus diff --git a/doc/html/boost_typetraits/reference/has_modulus_assign.html b/doc/html/boost_typetraits/reference/has_modulus_assign.html index 22b6ec6..aaa6a88 100644 --- a/doc/html/boost_typetraits/reference/has_modulus_assign.html +++ b/doc/html/boost_typetraits/reference/has_modulus_assign.html @@ -3,7 +3,7 @@ has_modulus_assign - + @@ -101,13 +101,13 @@

                                                                                                                                                                            Limitation:

                                                                                                                                                                            -
                                                                                                                                                                            • +
                                                                                                                                                                              • Requires a compiler with working SFINAE.

                                                                                                                                                                              Known issues:

                                                                                                                                                                              -
                                                                                                                                                                                +
                                                                                                                                                                                • This trait cannot detect whether binary operator%= is public or not: if operator%= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_multiplies.html b/doc/html/boost_typetraits/reference/has_multiplies.html index d28ef6d..c5c76c3 100644 --- a/doc/html/boost_typetraits/reference/has_multiplies.html +++ b/doc/html/boost_typetraits/reference/has_multiplies.html @@ -3,7 +3,7 @@ has_multiplies - + @@ -108,13 +108,13 @@

                                                                                                                                                                                  Limitation:

                                                                                                                                                                                  -
                                                                                                                                                                                  • +
                                                                                                                                                                                    • Requires a compiler with working SFINAE.

                                                                                                                                                                                    Known issues:

                                                                                                                                                                                    -
                                                                                                                                                                                      +
                                                                                                                                                                                      • This trait cannot detect whether binary operator* is public or not: if operator* is defined as a private member of Lhs then instantiating has_multiplies<Lhs> will produce a compiler error. For this reason has_multiplies diff --git a/doc/html/boost_typetraits/reference/has_multiplies_assign.html b/doc/html/boost_typetraits/reference/has_multiplies_assign.html index 2eb0fb7..e04d2ce 100644 --- a/doc/html/boost_typetraits/reference/has_multiplies_assign.html +++ b/doc/html/boost_typetraits/reference/has_multiplies_assign.html @@ -3,7 +3,7 @@ has_multiplies_assign - + @@ -108,13 +108,13 @@

                                                                                                                                                                                        Limitation:

                                                                                                                                                                                        -
                                                                                                                                                                                        • +
                                                                                                                                                                                          • Requires a compiler with working SFINAE.

                                                                                                                                                                                          Known issues:

                                                                                                                                                                                          -
                                                                                                                                                                                            +
                                                                                                                                                                                            • This trait cannot detect whether binary operator*= is public or not: if operator*= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_negate.html b/doc/html/boost_typetraits/reference/has_negate.html index c93c762..a225873 100644 --- a/doc/html/boost_typetraits/reference/has_negate.html +++ b/doc/html/boost_typetraits/reference/has_negate.html @@ -3,7 +3,7 @@ has_negate - + @@ -107,13 +107,13 @@

                                                                                                                                                                                              Limitation:

                                                                                                                                                                                              -
                                                                                                                                                                                              • +
                                                                                                                                                                                                • Requires a compiler with working SFINAE.

                                                                                                                                                                                                Known issues:

                                                                                                                                                                                                -
                                                                                                                                                                                                  +
                                                                                                                                                                                                  • This trait cannot detect whether prefix operator- is public or not: if operator- is defined as a private member of Rhs then instantiating has_negate<Rhs> will produce a compiler error. For this reason has_negate diff --git a/doc/html/boost_typetraits/reference/has_new_operator.html b/doc/html/boost_typetraits/reference/has_new_operator.html index 596b0f4..de4b834 100644 --- a/doc/html/boost_typetraits/reference/has_new_operator.html +++ b/doc/html/boost_typetraits/reference/has_new_operator.html @@ -3,7 +3,7 @@ has_new_operator - + diff --git a/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html b/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html index a0e35af..b6c531d 100644 --- a/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html +++ b/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html @@ -3,7 +3,7 @@ has_nothrow_default_constructor - + diff --git a/doc/html/boost_typetraits/reference/has_not_equal_to.html b/doc/html/boost_typetraits/reference/has_not_equal_to.html index 6564ffd..cad3d24 100644 --- a/doc/html/boost_typetraits/reference/has_not_equal_to.html +++ b/doc/html/boost_typetraits/reference/has_not_equal_to.html @@ -3,7 +3,7 @@ has_not_equal_to - + @@ -107,13 +107,13 @@

                                                                                                                                                                                                    Limitation:

                                                                                                                                                                                                    -
                                                                                                                                                                                                    • +
                                                                                                                                                                                                      • Requires a compiler with working SFINAE.

                                                                                                                                                                                                      Known issues:

                                                                                                                                                                                                      -
                                                                                                                                                                                                        +
                                                                                                                                                                                                        • This trait cannot detect whether binary operator!= is public or not: if operator!= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_nothrow_assign.html b/doc/html/boost_typetraits/reference/has_nothrow_assign.html index a59c194..9119531 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_assign.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_assign.html @@ -3,7 +3,7 @@ has_nothrow_assign - + diff --git a/doc/html/boost_typetraits/reference/has_nothrow_constructor.html b/doc/html/boost_typetraits/reference/has_nothrow_constructor.html index 46a391a..99ee5c5 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_constructor.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_constructor.html @@ -3,7 +3,7 @@ has_nothrow_constructor - + diff --git a/doc/html/boost_typetraits/reference/has_nothrow_copy.html b/doc/html/boost_typetraits/reference/has_nothrow_copy.html index ef5c220..fcf5903 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_copy.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_copy.html @@ -3,7 +3,7 @@ has_nothrow_copy - + diff --git a/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html b/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html index 4e16bae..1d4e9a0 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html @@ -3,7 +3,7 @@ has_nothrow_copy_constructor - + diff --git a/doc/html/boost_typetraits/reference/has_plus.html b/doc/html/boost_typetraits/reference/has_plus.html index aa3d4ad..847bd1e 100644 --- a/doc/html/boost_typetraits/reference/has_plus.html +++ b/doc/html/boost_typetraits/reference/has_plus.html @@ -3,7 +3,7 @@ has_plus - + @@ -108,13 +108,13 @@

                                                                                                                                                                                                          Limitation:

                                                                                                                                                                                                          -
                                                                                                                                                                                                          • +
                                                                                                                                                                                                            • Requires a compiler with working SFINAE.

                                                                                                                                                                                                            Known issues:

                                                                                                                                                                                                            -
                                                                                                                                                                                                              +
                                                                                                                                                                                                              • This trait cannot detect whether binary operator+ is public or not: if operator+ is defined as a private member of Lhs then instantiating has_plus<Lhs> will produce a compiler error. For this reason has_plus diff --git a/doc/html/boost_typetraits/reference/has_plus_assign.html b/doc/html/boost_typetraits/reference/has_plus_assign.html index be157c1..ceb65e5 100644 --- a/doc/html/boost_typetraits/reference/has_plus_assign.html +++ b/doc/html/boost_typetraits/reference/has_plus_assign.html @@ -3,7 +3,7 @@ has_plus_assign - + @@ -108,13 +108,13 @@

                                                                                                                                                                                                                Limitation:

                                                                                                                                                                                                                -
                                                                                                                                                                                                                • +
                                                                                                                                                                                                                  • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                  Known issues:

                                                                                                                                                                                                                  -
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    • This trait cannot detect whether binary operator+= is public or not: if operator+= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_post_decrement.html b/doc/html/boost_typetraits/reference/has_post_decrement.html index 9e8b153..eb13e1d 100644 --- a/doc/html/boost_typetraits/reference/has_post_decrement.html +++ b/doc/html/boost_typetraits/reference/has_post_decrement.html @@ -3,7 +3,7 @@ has_post_decrement - + @@ -115,13 +115,13 @@

                                                                                                                                                                                                                      Limitation:

                                                                                                                                                                                                                      -
                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                        • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                        Known issues:

                                                                                                                                                                                                                        -
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          • This trait cannot detect whether postfix operator-- is public or not: if operator-- is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_post_increment.html b/doc/html/boost_typetraits/reference/has_post_increment.html index b151d89..809da55 100644 --- a/doc/html/boost_typetraits/reference/has_post_increment.html +++ b/doc/html/boost_typetraits/reference/has_post_increment.html @@ -3,7 +3,7 @@ has_post_increment - + @@ -115,13 +115,13 @@

                                                                                                                                                                                                                            Limitation:

                                                                                                                                                                                                                            -
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                              • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                              Known issues:

                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                • This trait cannot detect whether postfix operator++ is public or not: if operator++ is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_pre_decrement.html b/doc/html/boost_typetraits/reference/has_pre_decrement.html index 30e5964..2a332af 100644 --- a/doc/html/boost_typetraits/reference/has_pre_decrement.html +++ b/doc/html/boost_typetraits/reference/has_pre_decrement.html @@ -3,7 +3,7 @@ has_pre_decrement - + @@ -115,13 +115,13 @@

                                                                                                                                                                                                                                  Limitation:

                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                    • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                                    Known issues:

                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      • This trait cannot detect whether prefix operator-- is public or not: if operator-- is defined as a private member of Rhs diff --git a/doc/html/boost_typetraits/reference/has_pre_increment.html b/doc/html/boost_typetraits/reference/has_pre_increment.html index 2b61ad1..4675664 100644 --- a/doc/html/boost_typetraits/reference/has_pre_increment.html +++ b/doc/html/boost_typetraits/reference/has_pre_increment.html @@ -3,7 +3,7 @@ has_pre_increment - + @@ -115,13 +115,13 @@

                                                                                                                                                                                                                                        Limitation:

                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                          • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                                          Known issues:

                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            • This trait cannot detect whether prefix operator++ is public or not: if operator++ is defined as a private member of Rhs diff --git a/doc/html/boost_typetraits/reference/has_right_shift.html b/doc/html/boost_typetraits/reference/has_right_shift.html index 4762f87..90e0a61 100644 --- a/doc/html/boost_typetraits/reference/has_right_shift.html +++ b/doc/html/boost_typetraits/reference/has_right_shift.html @@ -3,7 +3,7 @@ has_right_shift - + @@ -114,13 +114,13 @@

                                                                                                                                                                                                                                              Limitation:

                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                                                • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                                                Known issues:

                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                  • This trait cannot detect whether binary operator>> is public or not: if operator>> is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_right_shift_assign.html b/doc/html/boost_typetraits/reference/has_right_shift_assign.html index adf5d27..a359ce7 100644 --- a/doc/html/boost_typetraits/reference/has_right_shift_assign.html +++ b/doc/html/boost_typetraits/reference/has_right_shift_assign.html @@ -3,7 +3,7 @@ has_right_shift_assign - + @@ -106,13 +106,13 @@

                                                                                                                                                                                                                                                    Limitation:

                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                      • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                                                      Known issues:

                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                        • This trait cannot detect whether binary operator>>= is public or not: if operator>>= is defined as a private member of Lhs diff --git a/doc/html/boost_typetraits/reference/has_trivial_assign.html b/doc/html/boost_typetraits/reference/has_trivial_assign.html index 1b780df..e6f6659 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_assign.html +++ b/doc/html/boost_typetraits/reference/has_trivial_assign.html @@ -3,7 +3,7 @@ has_trivial_assign - + diff --git a/doc/html/boost_typetraits/reference/has_trivial_constructor.html b/doc/html/boost_typetraits/reference/has_trivial_constructor.html index 495c4d1..f39fee8 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_constructor.html +++ b/doc/html/boost_typetraits/reference/has_trivial_constructor.html @@ -3,7 +3,7 @@ has_trivial_constructor - + diff --git a/doc/html/boost_typetraits/reference/has_trivial_copy.html b/doc/html/boost_typetraits/reference/has_trivial_copy.html index c86fb32..ac3a58e 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_copy.html +++ b/doc/html/boost_typetraits/reference/has_trivial_copy.html @@ -3,7 +3,7 @@ has_trivial_copy - + diff --git a/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html b/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html index 099ea97..261d4c5 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html +++ b/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html @@ -3,7 +3,7 @@ has_trivial_copy_constructor - + diff --git a/doc/html/boost_typetraits/reference/has_trivial_def_cons.html b/doc/html/boost_typetraits/reference/has_trivial_def_cons.html index 30a4686..468ed8e 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_def_cons.html +++ b/doc/html/boost_typetraits/reference/has_trivial_def_cons.html @@ -3,7 +3,7 @@ has_trivial_default_constructor - + diff --git a/doc/html/boost_typetraits/reference/has_trivial_destructor.html b/doc/html/boost_typetraits/reference/has_trivial_destructor.html index bbec7e7..057793f 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_destructor.html +++ b/doc/html/boost_typetraits/reference/has_trivial_destructor.html @@ -3,11 +3,11 @@ has_trivial_destructor - + - + @@ -20,7 +20,7 @@

                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext

                                                                                                                                                                                                                                                          @@ -102,7 +102,7 @@
                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext
                                                                                                                                                                                                                                                          diff --git a/doc/html/boost_typetraits/reference/has_trivial_move_assign.html b/doc/html/boost_typetraits/reference/has_trivial_move_assign.html new file mode 100644 index 0000000..e22f9d8 --- /dev/null +++ b/doc/html/boost_typetraits/reference/has_trivial_move_assign.html @@ -0,0 +1,102 @@ + + + +has_trivial_move_assign + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          template <class T>
                                                                                                                                                                                                                                                          +struct has_trivial_move_assign : public true_type-or-false_type {};
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Inherits: If T is a (possibly cv-qualified) + type with a trivial move assignment-operator then inherits from true_type, + otherwise inherits from false_type. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + If a type has a trivial move assignment-operator then the operator has the + same effect as copying the bits of one object to the other: calls to the + operator can be safely replaced with a call to memcpy. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Compiler Compatibility: If the compiler + does not support partial-specialization of class templates, then this template + can not be used with function types. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Without some (as yet unspecified) help from the compiler, has_trivial_move_assign + will never report that a user-defined class or struct has a trivial constructor; + this is always safe, if possibly sub-optimal. Currently (February 2013) compilers + have no necessary intrinsics + to ensure that this trait "just works". You may also test to see + if the necessary intrinsics + are available by checking to see if the macro BOOST_HAS_TRIVIAL_MOVE_ASSIGN + is defined. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Header: #include + <boost/type_traits/has_trivial_move_assign.hpp> + or #include <boost/type_traits.hpp> +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Examples: +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_assign<int> inherits from true_type. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_assign<char*>::type + is the type true_type. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_assign<int (*)(long)>::value + is an integral constant expression that evaluates to true. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_assign<MyClass>::value + is an integral constant expression that evaluates to false. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_assign<T>::value_type + is the type bool. +

                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                          + + diff --git a/doc/html/boost_typetraits/reference/has_trivial_move_constructor.html b/doc/html/boost_typetraits/reference/has_trivial_move_constructor.html new file mode 100644 index 0000000..77c3213 --- /dev/null +++ b/doc/html/boost_typetraits/reference/has_trivial_move_constructor.html @@ -0,0 +1,102 @@ + + + +has_trivial_move_constructor + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                          template <class T>
                                                                                                                                                                                                                                                          +struct has_trivial_move_constructor : public true_type-or-false_type {};
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Inherits: If T is a (possibly cv-qualified) + type with a trivial move-constructor then inherits from true_type, + otherwise inherits from false_type. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + If a type has a trivial move-constructor then the constructor has the same + effect as copying the bits of one object to the other: calls to the constructor + can be safely replaced with a call to memcpy. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Compiler Compatibility: If the compiler + does not support partial-specialization of class templates, then this template + can not be used with function types. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Without some (as yet unspecified) help from the compiler, has_trivial_move_constructor + will never report that a user-defined class or struct has a trivial constructor; + this is always safe, if possibly sub-optimal. Currently (February 2013) compilers + have no necessary intrinsics + to ensure that this trait "just works". You may also test to see + if the necessary intrinsics + are available by checking to see if the macro BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR + is defined. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Header: #include + <boost/type_traits/has_trivial_move_constructor.hpp> + or #include <boost/type_traits.hpp> +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + Examples: +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_constructor<int> inherits from true_type. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_constructor<char*>::type + is the type true_type. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_constructor<int (*)(long)>::value + is an integral constant expression that evaluates to true. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_constructor<MyClass>::value + is an integral constant expression that evaluates to false. +

                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          + has_trivial_move_constructor<T>::value_type + is the type bool. +

                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                          + + diff --git a/doc/html/boost_typetraits/reference/has_unary_minus.html b/doc/html/boost_typetraits/reference/has_unary_minus.html index 6305daa..dc42013 100644 --- a/doc/html/boost_typetraits/reference/has_unary_minus.html +++ b/doc/html/boost_typetraits/reference/has_unary_minus.html @@ -3,10 +3,10 @@ has_unary_minus - + - + @@ -20,7 +20,7 @@
                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext

                                                                                                                                                                                                                                                          @@ -107,13 +107,13 @@

                                                                                                                                                                                                                                                          Limitation:

                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                          • +
                                                                                                                                                                                                                                                            • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                                                            Known issues:

                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                              • This trait cannot detect whether prefix operator- is public or not: if operator- is defined as a private member of Rhs then instantiating has_unary_minus<Rhs> will produce a compiler error. For this reason has_unary_minus @@ -188,7 +188,7 @@
                                                                                                                                                                                                                                                                -PrevUpHomeNext +PrevUpHomeNext
                                                                                                                                                                                                                                                                diff --git a/doc/html/boost_typetraits/reference/has_unary_plus.html b/doc/html/boost_typetraits/reference/has_unary_plus.html index c1b585d..997adac 100644 --- a/doc/html/boost_typetraits/reference/has_unary_plus.html +++ b/doc/html/boost_typetraits/reference/has_unary_plus.html @@ -3,7 +3,7 @@ has_unary_plus - + @@ -107,13 +107,13 @@

                                                                                                                                                                                                                                                                Limitation:

                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                • +
                                                                                                                                                                                                                                                                  • Requires a compiler with working SFINAE.

                                                                                                                                                                                                                                                                  Known issues:

                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                    • This trait cannot detect whether prefix operator+ is public or not: if operator+ is defined as a private member of Rhs then instantiating has_unary_plus<Rhs> will produce a compiler error. For this reason has_unary_plus diff --git a/doc/html/boost_typetraits/reference/has_virtual_destructor.html b/doc/html/boost_typetraits/reference/has_virtual_destructor.html index 197284e..2b53807 100644 --- a/doc/html/boost_typetraits/reference/has_virtual_destructor.html +++ b/doc/html/boost_typetraits/reference/has_virtual_destructor.html @@ -3,7 +3,7 @@ has_virtual_destructor - + diff --git a/doc/html/boost_typetraits/reference/integral_constant.html b/doc/html/boost_typetraits/reference/integral_constant.html index 0341d07..6ae1a4b 100644 --- a/doc/html/boost_typetraits/reference/integral_constant.html +++ b/doc/html/boost_typetraits/reference/integral_constant.html @@ -3,7 +3,7 @@ integral_constant - + diff --git a/doc/html/boost_typetraits/reference/integral_promotion.html b/doc/html/boost_typetraits/reference/integral_promotion.html index 780cf5d..958bdd1 100644 --- a/doc/html/boost_typetraits/reference/integral_promotion.html +++ b/doc/html/boost_typetraits/reference/integral_promotion.html @@ -3,7 +3,7 @@ integral_promotion - + diff --git a/doc/html/boost_typetraits/reference/is_abstract.html b/doc/html/boost_typetraits/reference/is_abstract.html index 7515d98..bfe1f2f 100644 --- a/doc/html/boost_typetraits/reference/is_abstract.html +++ b/doc/html/boost_typetraits/reference/is_abstract.html @@ -3,7 +3,7 @@ is_abstract - + diff --git a/doc/html/boost_typetraits/reference/is_arithmetic.html b/doc/html/boost_typetraits/reference/is_arithmetic.html index 30f2c5e..58fa2d5 100644 --- a/doc/html/boost_typetraits/reference/is_arithmetic.html +++ b/doc/html/boost_typetraits/reference/is_arithmetic.html @@ -3,7 +3,7 @@ is_arithmetic - + diff --git a/doc/html/boost_typetraits/reference/is_array.html b/doc/html/boost_typetraits/reference/is_array.html index e465073..d9f283f 100644 --- a/doc/html/boost_typetraits/reference/is_array.html +++ b/doc/html/boost_typetraits/reference/is_array.html @@ -3,7 +3,7 @@ is_array - + diff --git a/doc/html/boost_typetraits/reference/is_base_of.html b/doc/html/boost_typetraits/reference/is_base_of.html index fdfc2a3..bd44221 100644 --- a/doc/html/boost_typetraits/reference/is_base_of.html +++ b/doc/html/boost_typetraits/reference/is_base_of.html @@ -3,7 +3,7 @@ is_base_of - + diff --git a/doc/html/boost_typetraits/reference/is_class.html b/doc/html/boost_typetraits/reference/is_class.html index f69a0b2..e3f8721 100644 --- a/doc/html/boost_typetraits/reference/is_class.html +++ b/doc/html/boost_typetraits/reference/is_class.html @@ -3,7 +3,7 @@ is_class - + diff --git a/doc/html/boost_typetraits/reference/is_complex.html b/doc/html/boost_typetraits/reference/is_complex.html index 5075f2d..764f876 100644 --- a/doc/html/boost_typetraits/reference/is_complex.html +++ b/doc/html/boost_typetraits/reference/is_complex.html @@ -3,7 +3,7 @@ is_complex - + diff --git a/doc/html/boost_typetraits/reference/is_compound.html b/doc/html/boost_typetraits/reference/is_compound.html index 9c6d2a3..abdb6ff 100644 --- a/doc/html/boost_typetraits/reference/is_compound.html +++ b/doc/html/boost_typetraits/reference/is_compound.html @@ -3,7 +3,7 @@ is_compound - + diff --git a/doc/html/boost_typetraits/reference/is_const.html b/doc/html/boost_typetraits/reference/is_const.html index 2535636..d4c4d6e 100644 --- a/doc/html/boost_typetraits/reference/is_const.html +++ b/doc/html/boost_typetraits/reference/is_const.html @@ -3,7 +3,7 @@ is_const - + diff --git a/doc/html/boost_typetraits/reference/is_convertible.html b/doc/html/boost_typetraits/reference/is_convertible.html index 37ea25b..468c75e 100644 --- a/doc/html/boost_typetraits/reference/is_convertible.html +++ b/doc/html/boost_typetraits/reference/is_convertible.html @@ -3,7 +3,7 @@ is_convertible - + diff --git a/doc/html/boost_typetraits/reference/is_empty.html b/doc/html/boost_typetraits/reference/is_empty.html index 5afa65b..c131c85 100644 --- a/doc/html/boost_typetraits/reference/is_empty.html +++ b/doc/html/boost_typetraits/reference/is_empty.html @@ -3,7 +3,7 @@ is_empty - + @@ -46,7 +46,7 @@ Compiler Compatibility: In order to correctly detect empty classes this trait relies on either:

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                        • the compiler implementing zero sized empty base classes, or
                                                                                                                                                                                                                                                                        • diff --git a/doc/html/boost_typetraits/reference/is_enum.html b/doc/html/boost_typetraits/reference/is_enum.html index 54cbc43..4bdbe82 100644 --- a/doc/html/boost_typetraits/reference/is_enum.html +++ b/doc/html/boost_typetraits/reference/is_enum.html @@ -3,7 +3,7 @@ is_enum - + diff --git a/doc/html/boost_typetraits/reference/is_floating_point.html b/doc/html/boost_typetraits/reference/is_floating_point.html index 1d93364..efc0771 100644 --- a/doc/html/boost_typetraits/reference/is_floating_point.html +++ b/doc/html/boost_typetraits/reference/is_floating_point.html @@ -3,7 +3,7 @@ is_floating_point - + diff --git a/doc/html/boost_typetraits/reference/is_function.html b/doc/html/boost_typetraits/reference/is_function.html index 93d1e0a..7cd8b02 100644 --- a/doc/html/boost_typetraits/reference/is_function.html +++ b/doc/html/boost_typetraits/reference/is_function.html @@ -3,7 +3,7 @@ is_function - + diff --git a/doc/html/boost_typetraits/reference/is_fundamental.html b/doc/html/boost_typetraits/reference/is_fundamental.html index 6aa0063..ba5149b 100644 --- a/doc/html/boost_typetraits/reference/is_fundamental.html +++ b/doc/html/boost_typetraits/reference/is_fundamental.html @@ -3,7 +3,7 @@ is_fundamental - + diff --git a/doc/html/boost_typetraits/reference/is_integral.html b/doc/html/boost_typetraits/reference/is_integral.html index b4b22ff..f50f36a 100644 --- a/doc/html/boost_typetraits/reference/is_integral.html +++ b/doc/html/boost_typetraits/reference/is_integral.html @@ -3,7 +3,7 @@ is_integral - + diff --git a/doc/html/boost_typetraits/reference/is_lvalue_reference.html b/doc/html/boost_typetraits/reference/is_lvalue_reference.html index 9322a88..b0b0dfa 100644 --- a/doc/html/boost_typetraits/reference/is_lvalue_reference.html +++ b/doc/html/boost_typetraits/reference/is_lvalue_reference.html @@ -3,7 +3,7 @@ is_lvalue_reference - + diff --git a/doc/html/boost_typetraits/reference/is_member_function_pointer.html b/doc/html/boost_typetraits/reference/is_member_function_pointer.html index b3531c7..3ccfc60 100644 --- a/doc/html/boost_typetraits/reference/is_member_function_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_function_pointer.html @@ -3,7 +3,7 @@ is_member_function_pointer - + diff --git a/doc/html/boost_typetraits/reference/is_member_object_pointer.html b/doc/html/boost_typetraits/reference/is_member_object_pointer.html index c748df9..582bcae 100644 --- a/doc/html/boost_typetraits/reference/is_member_object_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_object_pointer.html @@ -3,7 +3,7 @@ is_member_object_pointer - + diff --git a/doc/html/boost_typetraits/reference/is_member_pointer.html b/doc/html/boost_typetraits/reference/is_member_pointer.html index ed1c67c..932ea11 100644 --- a/doc/html/boost_typetraits/reference/is_member_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_pointer.html @@ -3,11 +3,11 @@ is_member_pointer - + - + @@ -20,7 +20,7 @@

                                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext

                                                                                                                                                                                                                                                                          @@ -75,7 +75,7 @@
                                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext
                                                                                                                                                                                                                                                                          diff --git a/doc/html/boost_typetraits/reference/is_nothrow_move_assignable.html b/doc/html/boost_typetraits/reference/is_nothrow_move_assignable.html new file mode 100644 index 0000000..f033f05 --- /dev/null +++ b/doc/html/boost_typetraits/reference/is_nothrow_move_assignable.html @@ -0,0 +1,83 @@ + + + +is_nothrow_move_assignable + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          template <class T>
                                                                                                                                                                                                                                                                          +struct is_nothrow_move_assignable : public true_type-or-false_type {};
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Inherits: If T + is a (possibly cv-qualified) type with a non-throwing move assignment-operator + or a type without move assignment-operator but with non-throwing assignment-operator, + then inherits from true_type, + otherwise inherits from false_type. + Type T must be a complete + type. +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + In other words, inherits from true_type + only if expression varaible1 = std::move(varaible2) won't throw (varaible1 + and varaible2 are variables + of type T). +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Compiler Compatibility: If the compiler + does not support partial-specialization of class templates, then this template + can not be used with function types. +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Without some (C++11 noexcept shall work correctly) help from the compiler, + is_nothrow_move_assignable + will never report that a class or struct has a non-throwing assignment-operator; + this is always safe, if possibly sub-optimal. Currently (February 2013) Clang + and GCC 4.7 have the necessary compiler support to ensure that this trait + "just works". +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Header: #include + <boost/type_traits/is_nothrow_move_assignable.hpp> + or #include <boost/type_traits.hpp> +

                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                                          + + diff --git a/doc/html/boost_typetraits/reference/is_nothrow_move_constructible.html b/doc/html/boost_typetraits/reference/is_nothrow_move_constructible.html new file mode 100644 index 0000000..4d1ee00 --- /dev/null +++ b/doc/html/boost_typetraits/reference/is_nothrow_move_constructible.html @@ -0,0 +1,81 @@ + + + +is_nothrow_move_constructible + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                                                          Boost C++ LibrariesHomeLibrariesPeopleFAQMore
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                          template <class T>
                                                                                                                                                                                                                                                                          +struct is_nothrow_move_constructible : public true_type-or-false_type {};
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Inherits: If T is a (possibly cv-qualified) + type with a non-throwing move-constructor or a type without move-constructor + but with non-throwing copy-constructor, then inherits from true_type, + otherwise inherits from false_type. + Type T must be a complete + type. +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + In other words, inherits from true_type + only if expression T(std::move(varaible1)) won't throw (varaible1 + is a variable of type T). +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Compiler Compatibility: If the compiler + does not support partial-specialization of class templates, then this template + can not be used with function types. +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Without some (C++11 noexcept shall work correctly) help from the compiler, + is_nothrow_move_constructible + will never report that a class or struct has a non-throwing copy-constructor; + this is always safe, if possibly sub-optimal. Currently (February 2013) Clang + and GCC 4.7 have the necessary compiler support to ensure that this trait + "just works". +

                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          + Header: #include + <boost/type_traits/is_nothrow_move_constructible.hpp> + or #include <boost/type_traits.hpp> +

                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          + + + +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          +PrevUpHomeNext +
                                                                                                                                                                                                                                                                          + + diff --git a/doc/html/boost_typetraits/reference/is_object.html b/doc/html/boost_typetraits/reference/is_object.html index a12b528..f7a800c 100644 --- a/doc/html/boost_typetraits/reference/is_object.html +++ b/doc/html/boost_typetraits/reference/is_object.html @@ -3,10 +3,10 @@ is_object - + - + @@ -20,7 +20,7 @@
                                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext

                                                                                                                                                                                                                                                                          @@ -93,7 +93,7 @@
                                                                                                                                                                                                                                                                          -PrevUpHomeNext +PrevUpHomeNext
                                                                                                                                                                                                                                                                          diff --git a/doc/html/boost_typetraits/reference/is_pod.html b/doc/html/boost_typetraits/reference/is_pod.html index b013fa7..2fe4e6c 100644 --- a/doc/html/boost_typetraits/reference/is_pod.html +++ b/doc/html/boost_typetraits/reference/is_pod.html @@ -3,7 +3,7 @@ is_pod - + diff --git a/doc/html/boost_typetraits/reference/is_pointer.html b/doc/html/boost_typetraits/reference/is_pointer.html index 57e0848..3eac19a 100644 --- a/doc/html/boost_typetraits/reference/is_pointer.html +++ b/doc/html/boost_typetraits/reference/is_pointer.html @@ -3,7 +3,7 @@ is_pointer - + diff --git a/doc/html/boost_typetraits/reference/is_polymorphic.html b/doc/html/boost_typetraits/reference/is_polymorphic.html index 8fa55c9..2ec5cc4 100644 --- a/doc/html/boost_typetraits/reference/is_polymorphic.html +++ b/doc/html/boost_typetraits/reference/is_polymorphic.html @@ -3,7 +3,7 @@ is_polymorphic - + diff --git a/doc/html/boost_typetraits/reference/is_reference.html b/doc/html/boost_typetraits/reference/is_reference.html index f45057b..3549190 100644 --- a/doc/html/boost_typetraits/reference/is_reference.html +++ b/doc/html/boost_typetraits/reference/is_reference.html @@ -3,7 +3,7 @@ is_reference - + diff --git a/doc/html/boost_typetraits/reference/is_rvalue_reference.html b/doc/html/boost_typetraits/reference/is_rvalue_reference.html index 2f7ed70..f2267e3 100644 --- a/doc/html/boost_typetraits/reference/is_rvalue_reference.html +++ b/doc/html/boost_typetraits/reference/is_rvalue_reference.html @@ -3,7 +3,7 @@ is_rvalue_reference - + diff --git a/doc/html/boost_typetraits/reference/is_same.html b/doc/html/boost_typetraits/reference/is_same.html index fcea669..a53cb19 100644 --- a/doc/html/boost_typetraits/reference/is_same.html +++ b/doc/html/boost_typetraits/reference/is_same.html @@ -3,7 +3,7 @@ is_same - + diff --git a/doc/html/boost_typetraits/reference/is_scalar.html b/doc/html/boost_typetraits/reference/is_scalar.html index da4eaf3..6799906 100644 --- a/doc/html/boost_typetraits/reference/is_scalar.html +++ b/doc/html/boost_typetraits/reference/is_scalar.html @@ -3,7 +3,7 @@ is_scalar - + diff --git a/doc/html/boost_typetraits/reference/is_signed.html b/doc/html/boost_typetraits/reference/is_signed.html index da0fcff..8c6b5ec 100644 --- a/doc/html/boost_typetraits/reference/is_signed.html +++ b/doc/html/boost_typetraits/reference/is_signed.html @@ -3,7 +3,7 @@ is_signed - + diff --git a/doc/html/boost_typetraits/reference/is_stateless.html b/doc/html/boost_typetraits/reference/is_stateless.html index 8f002a0..6e0bf1c 100644 --- a/doc/html/boost_typetraits/reference/is_stateless.html +++ b/doc/html/boost_typetraits/reference/is_stateless.html @@ -3,7 +3,7 @@ is_stateless - + diff --git a/doc/html/boost_typetraits/reference/is_union.html b/doc/html/boost_typetraits/reference/is_union.html index 1e13ad6..07c6b07 100644 --- a/doc/html/boost_typetraits/reference/is_union.html +++ b/doc/html/boost_typetraits/reference/is_union.html @@ -3,7 +3,7 @@ is_union - + diff --git a/doc/html/boost_typetraits/reference/is_unsigned.html b/doc/html/boost_typetraits/reference/is_unsigned.html index 073fc1b..4961f57 100644 --- a/doc/html/boost_typetraits/reference/is_unsigned.html +++ b/doc/html/boost_typetraits/reference/is_unsigned.html @@ -3,7 +3,7 @@ is_unsigned - + diff --git a/doc/html/boost_typetraits/reference/is_virtual_base_of.html b/doc/html/boost_typetraits/reference/is_virtual_base_of.html index 1009eea..41f85ce 100644 --- a/doc/html/boost_typetraits/reference/is_virtual_base_of.html +++ b/doc/html/boost_typetraits/reference/is_virtual_base_of.html @@ -3,7 +3,7 @@ is_virtual_base_of - + diff --git a/doc/html/boost_typetraits/reference/is_void.html b/doc/html/boost_typetraits/reference/is_void.html index 533a97f..84c280d 100644 --- a/doc/html/boost_typetraits/reference/is_void.html +++ b/doc/html/boost_typetraits/reference/is_void.html @@ -3,7 +3,7 @@ is_void - + diff --git a/doc/html/boost_typetraits/reference/is_volatile.html b/doc/html/boost_typetraits/reference/is_volatile.html index 27791fc..8021864 100644 --- a/doc/html/boost_typetraits/reference/is_volatile.html +++ b/doc/html/boost_typetraits/reference/is_volatile.html @@ -3,7 +3,7 @@ is_volatile - + diff --git a/doc/html/boost_typetraits/reference/make_signed.html b/doc/html/boost_typetraits/reference/make_signed.html index 26e418c..efe446b 100644 --- a/doc/html/boost_typetraits/reference/make_signed.html +++ b/doc/html/boost_typetraits/reference/make_signed.html @@ -3,7 +3,7 @@ make_signed - + diff --git a/doc/html/boost_typetraits/reference/make_unsigned.html b/doc/html/boost_typetraits/reference/make_unsigned.html index a34a745..9ada869 100644 --- a/doc/html/boost_typetraits/reference/make_unsigned.html +++ b/doc/html/boost_typetraits/reference/make_unsigned.html @@ -3,7 +3,7 @@ make_unsigned - + diff --git a/doc/html/boost_typetraits/reference/promote.html b/doc/html/boost_typetraits/reference/promote.html index 57a8be3..3081827 100644 --- a/doc/html/boost_typetraits/reference/promote.html +++ b/doc/html/boost_typetraits/reference/promote.html @@ -3,7 +3,7 @@ promote - + diff --git a/doc/html/boost_typetraits/reference/rank.html b/doc/html/boost_typetraits/reference/rank.html index f896749..7ab6251 100644 --- a/doc/html/boost_typetraits/reference/rank.html +++ b/doc/html/boost_typetraits/reference/rank.html @@ -3,7 +3,7 @@ rank - + diff --git a/doc/html/boost_typetraits/reference/remove_all_extents.html b/doc/html/boost_typetraits/reference/remove_all_extents.html index 6879188..0e82098 100644 --- a/doc/html/boost_typetraits/reference/remove_all_extents.html +++ b/doc/html/boost_typetraits/reference/remove_all_extents.html @@ -3,7 +3,7 @@ remove_all_extents - + diff --git a/doc/html/boost_typetraits/reference/remove_const.html b/doc/html/boost_typetraits/reference/remove_const.html index 6a9ceb4..9cd5715 100644 --- a/doc/html/boost_typetraits/reference/remove_const.html +++ b/doc/html/boost_typetraits/reference/remove_const.html @@ -3,7 +3,7 @@ remove_const - + diff --git a/doc/html/boost_typetraits/reference/remove_cv.html b/doc/html/boost_typetraits/reference/remove_cv.html index 2e369f9..51b223e 100644 --- a/doc/html/boost_typetraits/reference/remove_cv.html +++ b/doc/html/boost_typetraits/reference/remove_cv.html @@ -3,7 +3,7 @@ remove_cv - + diff --git a/doc/html/boost_typetraits/reference/remove_extent.html b/doc/html/boost_typetraits/reference/remove_extent.html index 49a072b..0c0bd6b 100644 --- a/doc/html/boost_typetraits/reference/remove_extent.html +++ b/doc/html/boost_typetraits/reference/remove_extent.html @@ -3,7 +3,7 @@ remove_extent - + diff --git a/doc/html/boost_typetraits/reference/remove_pointer.html b/doc/html/boost_typetraits/reference/remove_pointer.html index 78be60a..52b57bb 100644 --- a/doc/html/boost_typetraits/reference/remove_pointer.html +++ b/doc/html/boost_typetraits/reference/remove_pointer.html @@ -3,7 +3,7 @@ remove_pointer - + diff --git a/doc/html/boost_typetraits/reference/remove_reference.html b/doc/html/boost_typetraits/reference/remove_reference.html index f0789cc..0d60b87 100644 --- a/doc/html/boost_typetraits/reference/remove_reference.html +++ b/doc/html/boost_typetraits/reference/remove_reference.html @@ -3,7 +3,7 @@ remove_reference - + diff --git a/doc/html/boost_typetraits/reference/remove_volatile.html b/doc/html/boost_typetraits/reference/remove_volatile.html index 46e3dec..76cfaa3 100644 --- a/doc/html/boost_typetraits/reference/remove_volatile.html +++ b/doc/html/boost_typetraits/reference/remove_volatile.html @@ -3,7 +3,7 @@ remove_volatile - + diff --git a/doc/html/boost_typetraits/reference/type_with_alignment.html b/doc/html/boost_typetraits/reference/type_with_alignment.html index 3d67c86..81d90ff 100644 --- a/doc/html/boost_typetraits/reference/type_with_alignment.html +++ b/doc/html/boost_typetraits/reference/type_with_alignment.html @@ -3,7 +3,7 @@ type_with_alignment - + diff --git a/doc/html/boost_typetraits/user_defined.html b/doc/html/boost_typetraits/user_defined.html index 222a75e..aeb6225 100644 --- a/doc/html/boost_typetraits/user_defined.html +++ b/doc/html/boost_typetraits/user_defined.html @@ -3,7 +3,7 @@ User Defined Specializations - + diff --git a/doc/html/index.html b/doc/html/index.html index 6eecfb4..5dc8d2c 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,7 +3,7 @@ Chapter 1. Boost.TypeTraits - + @@ -146,6 +146,8 @@
                                                                                                                                                                                                                                                                          has_trivial_copy_constructor
                                                                                                                                                                                                                                                                          has_trivial_default_constructor
                                                                                                                                                                                                                                                                          has_trivial_destructor
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          has_trivial_move_assign
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          has_trivial_move_constructor
                                                                                                                                                                                                                                                                          has_unary_minus
                                                                                                                                                                                                                                                                          has_unary_plus
                                                                                                                                                                                                                                                                          has_virtual_destructor
                                                                                                                                                                                                                                                                          @@ -170,6 +172,8 @@
                                                                                                                                                                                                                                                                          is_member_function_pointer
                                                                                                                                                                                                                                                                          is_member_object_pointer
                                                                                                                                                                                                                                                                          is_member_pointer
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          is_nothrow_move_assignable
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          is_nothrow_move_constructible
                                                                                                                                                                                                                                                                          is_object
                                                                                                                                                                                                                                                                          is_pod
                                                                                                                                                                                                                                                                          is_pointer
                                                                                                                                                                                                                                                                          @@ -212,7 +216,7 @@

                                                                                                                                                                                                                                                                          - +

                                                                                                                                                                                                                                                                          Last revised: October 07, 2011 at 22:05:54 +0100

                                                                                                                                                                                                                                                                          Last revised: October 08, 2011 at 01:05:54 +0400


                                                                                                                                                                                                                                                                          diff --git a/doc/html/index/s11.html b/doc/html/index/s11.html index 53225d9..c1ce0cb 100644 --- a/doc/html/index/s11.html +++ b/doc/html/index/s11.html @@ -3,7 +3,7 @@ Class Index - + @@ -22,15 +22,15 @@
                                                                                                                                                                                                                                                                          PrevUpHomeNext
                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                                          -Class Index

                                                                                                                                                                                                                                                                          +Class Index

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

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                          A
                                                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                                          F R T

                                                                                                                                                                                                                                                          - diff --git a/doc/html/index/s13.html b/doc/html/index/s13.html index be5e16b..64d3bb7 100644 --- a/doc/html/index/s13.html +++ b/doc/html/index/s13.html @@ -3,7 +3,7 @@ Macro Index - + @@ -22,124 +22,138 @@
                                                                                                                                                                                                                                                          PrevUpHomeNext
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                                          -Macro Index

                                                                                                                                                                                                                                                          +Macro Index

                                                                                                                                                                                                                                                          B

                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                          B
                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                            • BOOST_ALIGNMENT_OF

                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                            • BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION

                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                            • BOOST_COMMON_TYPE_DONT_USE_TYPEOF

                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                            • BOOST_HAS_NOTHROW_ASSIGN

                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                            • BOOST_HAS_NOTHROW_CONSTRUCTOR

                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                              • BOOST_HAS_NOTHROW_COPY

                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                • BOOST_HAS_TRIVIAL_ASSIGN

                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_CONSTRUCTOR

                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                    • BOOST_HAS_TRIVIAL_COPY

                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                      • BOOST_HAS_TRIVIAL_DESTRUCTOR

                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                        • +

                                                                                                                                                                                                                                                                          BOOST_HAS_TRIVIAL_MOVE_ASSIGN

                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                                                        • +

                                                                                                                                                                                                                                                                          BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR

                                                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                                                        • BOOST_HAS_VIRTUAL_DESTRUCTOR

                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                          • BOOST_IS_ABSTRACT

                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                          • BOOST_IS_BASE_OF

                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                          • BOOST_IS_CLASS

                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                            • BOOST_IS_CONVERTIBLE

                                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                                            • BOOST_IS_EMPTY

                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                              • BOOST_IS_ENUM

                                                                                                                                                                                                                                                                                - +
                                                                                                                                                                                                                                                                              • BOOST_IS_POD

                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                • BOOST_IS_POLYMORPHIC

                                                                                                                                                                                                                                                                                  - +
                                                                                                                                                                                                                                                                                • BOOST_IS_UNION

                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                    + diff --git a/doc/html/index/s14.html b/doc/html/index/s14.html index 9059f2c..9c3c0e1 100644 --- a/doc/html/index/s14.html +++ b/doc/html/index/s14.html @@ -3,7 +3,7 @@ Index - + @@ -21,15 +21,15 @@
                                                                                                                                                                                                                                                                                    PrevUpHome
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    -Index

                                                                                                                                                                                                                                                                                    +Index

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

                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                  A
                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                    B
                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                      • Background and Tutorial

                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                          • is_pointer

                                                                                                                                                                                                                                                                                          • is_void

                                                                                                                                                                                                                                                                                          • remove_extent

                                                                                                                                                                                                                                                                                          • @@ -64,113 +64,127 @@
                                                                                                                                                                                                                                                                                          • BOOST_ALIGNMENT_OF

                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                          • BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION

                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                          • BOOST_COMMON_TYPE_DONT_USE_TYPEOF

                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                          • BOOST_HAS_NOTHROW_ASSIGN

                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                          • BOOST_HAS_NOTHROW_CONSTRUCTOR

                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                            • BOOST_HAS_NOTHROW_COPY

                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                              • BOOST_HAS_TRIVIAL_ASSIGN

                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                • BOOST_HAS_TRIVIAL_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_COPY

                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                    • BOOST_HAS_TRIVIAL_DESTRUCTOR

                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                      • +

                                                                                                                                                                                                                                                                                                        BOOST_HAS_TRIVIAL_MOVE_ASSIGN

                                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                                                                                      • +

                                                                                                                                                                                                                                                                                                        BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                                                                                      • BOOST_HAS_VIRTUAL_DESTRUCTOR

                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                        • BOOST_IS_ABSTRACT

                                                                                                                                                                                                                                                                                                          - +
                                                                                                                                                                                                                                                                                                        • BOOST_IS_BASE_OF

                                                                                                                                                                                                                                                                                                          - +
                                                                                                                                                                                                                                                                                                        • BOOST_IS_CLASS

                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                          • BOOST_IS_CONVERTIBLE

                                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                                          • BOOST_IS_EMPTY

                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                            • BOOST_IS_ENUM

                                                                                                                                                                                                                                                                                                              - +
                                                                                                                                                                                                                                                                                                            • BOOST_IS_POD

                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                              • BOOST_IS_POLYMORPHIC

                                                                                                                                                                                                                                                                                                                - +
                                                                                                                                                                                                                                                                                                              • BOOST_IS_UNION

                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                  + @@ -179,14 +193,14 @@
                                                                                                                                                                                                                                                                                                                  C
                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                    • check

                                                                                                                                                                                                                                                                                                                      - +
                                                                                                                                                                                                                                                                                                                    • common_type

                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                        • BOOST_COMMON_TYPE_DONT_USE_TYPEOF

                                                                                                                                                                                                                                                                                                                        • common_type

                                                                                                                                                                                                                                                                                                                        • Improving std::min with common_type

                                                                                                                                                                                                                                                                                                                        • @@ -196,11 +210,11 @@
                                                                                                                                                                                                                                                                                                                          D
                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                            • decay

                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                • has_bit_and

                                                                                                                                                                                                                                                                                                                                • has_bit_and_assign

                                                                                                                                                                                                                                                                                                                                • has_bit_or

                                                                                                                                                                                                                                                                                                                                • @@ -246,9 +260,9 @@
                                                                                                                                                                                                                                                                                                                                  E
                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                                                                    • extent

                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                        + @@ -256,15 +270,15 @@
                                                                                                                                                                                                                                                                                                                                        F
                                                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                                                          • false_type

                                                                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                                                                          • floating_point_promotion

                                                                                                                                                                                                                                                                                                                                          • function_traits

                                                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                                                              + @@ -273,10 +287,10 @@
                                                                                                                                                                                                                                                                                                                                              H
                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                • has_bit_and

                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                    • has_bit_and

                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                    • @@ -284,7 +298,7 @@
                                                                                                                                                                                                                                                                                                                                                    • has_bit_and_assign

                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                        • has_bit_and_assign

                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                        • @@ -292,7 +306,7 @@
                                                                                                                                                                                                                                                                                                                                                        • has_bit_or

                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                            • has_bit_or

                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                            • @@ -300,7 +314,7 @@
                                                                                                                                                                                                                                                                                                                                                            • has_bit_or_assign

                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                • has_bit_or_assign

                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                • @@ -308,7 +322,7 @@
                                                                                                                                                                                                                                                                                                                                                                • has_bit_xor

                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                    • has_bit_xor

                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                    • @@ -316,7 +330,7 @@
                                                                                                                                                                                                                                                                                                                                                                    • has_bit_xor_assign

                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                        • has_bit_xor_assign

                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                        • @@ -324,7 +338,7 @@
                                                                                                                                                                                                                                                                                                                                                                        • has_complement

                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                            • has_complement

                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                            • @@ -332,7 +346,7 @@
                                                                                                                                                                                                                                                                                                                                                                            • has_dereference

                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                • has_dereference

                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                • @@ -340,7 +354,7 @@
                                                                                                                                                                                                                                                                                                                                                                                • has_divides

                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                    • has_divides

                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                    • @@ -348,7 +362,7 @@
                                                                                                                                                                                                                                                                                                                                                                                    • has_divides_assign

                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                        • has_divides_assign

                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                        • @@ -356,7 +370,7 @@
                                                                                                                                                                                                                                                                                                                                                                                        • has_equal_to

                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                            • has_equal_to

                                                                                                                                                                                                                                                                                                                                                                                            • Operator Type Traits

                                                                                                                                                                                                                                                                                                                                                                                            • @@ -365,7 +379,7 @@
                                                                                                                                                                                                                                                                                                                                                                                            • has_greater

                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                • has_greater

                                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                                • @@ -373,7 +387,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                • has_greater_equal

                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                    • has_greater_equal

                                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -381,7 +395,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                    • has_left_shift

                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                        • has_left_shift

                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -389,7 +403,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                        • has_left_shift_assign

                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                            • has_left_shift_assign

                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -397,7 +411,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                            • has_less

                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                • has_less

                                                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                                                • @@ -405,7 +419,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                • has_less_equal

                                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                    • has_less_equal

                                                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -413,7 +427,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                    • has_logical_and

                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                        • has_logical_and

                                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -421,7 +435,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                        • has_logical_not

                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                            • has_logical_not

                                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -429,7 +443,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                            • has_logical_or

                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                • has_logical_or

                                                                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                • @@ -437,7 +451,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                • has_minus

                                                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_minus

                                                                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -445,7 +459,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_minus_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_minus_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -453,7 +467,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_modulus

                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_modulus

                                                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -461,7 +475,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_modulus_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_modulus_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                • @@ -469,7 +483,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_multiplies

                                                                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_multiplies

                                                                                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -477,7 +491,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_multiplies_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_multiplies_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -485,7 +499,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_negate

                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_negate

                                                                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -495,7 +509,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_nothrow_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_nothrow_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                • BOOST_HAS_NOTHROW_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_nothrow_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_nothrow_default_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                • @@ -503,7 +517,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_nothrow_copy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • BOOST_HAS_NOTHROW_COPY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_nothrow_copy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_nothrow_copy_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -511,15 +525,15 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_nothrow_copy_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_nothrow_default_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_not_equal_to

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_not_equal_to

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -527,11 +541,11 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_operator

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_plus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_plus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -539,7 +553,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_plus_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_plus_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • @@ -547,7 +561,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_post_decrement

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_post_decrement

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -555,7 +569,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_post_increment

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_post_increment

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -563,7 +577,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_pre_decrement

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_pre_decrement

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -571,7 +585,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_pre_increment

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_pre_increment

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • @@ -579,7 +593,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                • has_right_shift

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_right_shift

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • @@ -587,7 +601,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_right_shift_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_right_shift_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -595,14 +609,14 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_trivial_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • has_trivial_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • BOOST_HAS_TRIVIAL_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • has_trivial_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • has_trivial_default_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • @@ -610,7 +624,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • has_trivial_copy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_COPY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • has_trivial_copy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • has_trivial_copy_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • @@ -618,22 +632,36 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • has_trivial_copy_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • has_trivial_default_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • has_trivial_destructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • +

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      has_trivial_move_assign

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • +

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      has_trivial_move_constructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • has_unary_minus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_unary_minus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • Operator Type Traits

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -642,7 +670,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • has_unary_plus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • dont_care

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_unary_plus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • trait

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • @@ -650,7 +678,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • has_virtual_destructor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                + @@ -659,18 +687,18 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                I
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Improving std::min with common_type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • integral_constant

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • alignment_of

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • extent

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • false_type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • @@ -687,7 +715,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • is_base_of

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • is_class

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • BOOST_IS_CLASS

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • is_class

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • User Defined Specializations

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • @@ -699,11 +727,11 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • is_convertible

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • is_convertible_to_Ret

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            - +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • is_empty

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              + @@ -712,7 +740,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • is_floating_point

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • is_function

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                + @@ -723,10 +751,12 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_member_function_pointer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_member_object_pointer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_member_pointer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_nothrow_move_assignable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_nothrow_move_constructible

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_object

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • is_pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_IS_POD

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • is_pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • User Defined Specializations

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • @@ -734,7 +764,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • is_pointer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      + @@ -748,7 +778,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • is_stateless

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • is_union

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • BOOST_IS_UNION

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • is_union

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • User Defined Specializations

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • @@ -758,7 +788,7 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • is_virtual_base_of

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • is_void

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            + @@ -768,10 +798,10 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Macros for Compiler Intrinsics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_ALIGNMENT_OF

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_NOTHROW_ASSIGN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_NOTHROW_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • @@ -780,6 +810,8 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_COPY

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_DESTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_MOVE_ASSIGN

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_HAS_VIRTUAL_DESTRUCTOR

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_IS_ABSTRACT

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • BOOST_IS_BASE_OF

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • @@ -798,17 +830,17 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    N
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      O
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        P
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        R
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          T
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            U
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • User Defined Specializations

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • is_class

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • is_pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • is_union

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • diff --git a/doc/intrinsics.qbk b/doc/intrinsics.qbk index 2d171f6..abffdac 100644 --- a/doc/intrinsics.qbk +++ b/doc/intrinsics.qbk @@ -10,9 +10,8 @@ There are some traits that can not be implemented within the current C++ language: to make these traits "just work" with user defined types, some kind of additional help from the compiler is required. Currently (April 2008) Visual C++ 8 and 9, -GNU GCC 4.3 and MWCW 9 -provide the necessary intrinsics, and other compilers will no doubt follow in due -course. +GNU GCC 4.3 and MWCW 9 provide at least some of the the necessary intrinsics, +and other compilers will no doubt follow in due course. The Following traits classes always need compiler support to do the right thing for all types @@ -22,7 +21,9 @@ for all types * __is_pod * __has_trivial_constructor * __has_trivial_copy +* __has_trivial_move_constructor * __has_trivial_assign +* __has_trivial_move_assign * __has_trivial_destructor * __has_nothrow_constructor * __has_nothrow_copy @@ -51,7 +52,9 @@ a matter of defining one of more of the following macros: [[BOOST_IS_EMPTY(T)][Should evaluate to true if T is an empty struct or union]] [[BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)][Should evaluate to true if the default constructor for T is trivial (i.e. has no effect)]] [[BOOST_HAS_TRIVIAL_COPY(T)][Should evaluate to true if T has a trivial copy constructor (and can therefore be replaced by a call to memcpy)]] + [[BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)][Should evaluate to true if T has a trivial move constructor (and can therefore be replaced by a call to memcpy)]] [[BOOST_HAS_TRIVIAL_ASSIGN(T)][Should evaluate to true if T has a trivial assignment operator (and can therefore be replaced by a call to memcpy)]] + [[BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)][Should evaluate to true if T has a trivial move assignment operator (and can therefore be replaced by a call to memcpy)]] [[BOOST_HAS_TRIVIAL_DESTRUCTOR(T)][Should evaluate to true if T has a trivial destructor (i.e. ~T() has no effect)]] [[BOOST_HAS_NOTHROW_CONSTRUCTOR(T)][Should evaluate to true if `T x;` can not throw]] [[BOOST_HAS_NOTHROW_COPY(T)][Should evaluate to true if `T(t)` can not throw]] diff --git a/doc/is_nothrow_move_assignable.qbk b/doc/is_nothrow_move_assignable.qbk new file mode 100644 index 0000000..107f660 --- /dev/null +++ b/doc/is_nothrow_move_assignable.qbk @@ -0,0 +1,34 @@ +[/ + Copyright 2007 John Maddock. + Copyright 2013 Antony Polukhin. + 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:is_nothrow_move_assignable is_nothrow_move_assignable] + + template + struct is_nothrow_move_assignable : public __tof {}; + +__inherit If `T` is a (possibly cv-qualified) type with a non-throwing move assignment-operator +or a type without move assignment-operator but with non-throwing assignment-operator, +then inherits from __true_type, otherwise inherits from __false_type. Type `T` +must be a complete type. + +In other words, inherits from __true_type only if expression `varaible1 = std::move(varaible2)` +won't throw (`varaible1` and `varaible2` are variables of type `T`). + +__compat If the compiler does not support partial-specialization of class +templates, then this template can not be used with function types. + +Without some (C++11 noexcept shall work correctly) help from the compiler, +`is_nothrow_move_assignable` will never report that a class or struct has a +non-throwing assignment-operator; this is always safe, if possibly sub-optimal. +Currently (February 2013) Clang and GCC 4.7 have the necessary compiler support to ensure that this +trait "just works". + +__header ` #include ` or ` #include ` + +[endsect] + diff --git a/doc/is_nothrow_move_constructible.qbk b/doc/is_nothrow_move_constructible.qbk new file mode 100644 index 0000000..797af4c --- /dev/null +++ b/doc/is_nothrow_move_constructible.qbk @@ -0,0 +1,34 @@ +[/ + Copyright 2007 John Maddock. + Copyright 2013 Antony Polukhin. + 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:is_nothrow_move_constructible is_nothrow_move_constructible] + + template + struct is_nothrow_move_constructible : public __tof {}; + +__inherit If T is a (possibly cv-qualified) type with a non-throwing move-constructor +or a type without move-constructor but with non-throwing copy-constructor, +then inherits from __true_type, otherwise inherits from __false_type. Type `T` +must be a complete type. + +In other words, inherits from __true_type only if expression `T(std::move(varaible1))` +won't throw (`varaible1` is a variable of type `T`). + +__compat If the compiler does not support partial-specialization of class +templates, then this template can not be used with function types. + +Without some (C++11 noexcept shall work correctly) help from the compiler, +`is_nothrow_move_constructible` will never report that a class or struct has a +non-throwing copy-constructor; this is always safe, if possibly sub-optimal. +Currently (February 2013) Clang and GCC 4.7 have the necessary compiler support to ensure that this +trait "just works". + +__header ` #include ` or ` #include ` + +[endsect] + diff --git a/doc/type_traits.qbk b/doc/type_traits.qbk index e3bf284..e7dfd32 100644 --- a/doc/type_traits.qbk +++ b/doc/type_traits.qbk @@ -80,14 +80,18 @@ [def __has_trivial_copy [link boost_typetraits.reference.has_trivial_copy has_trivial_copy]] [def __has_trivial_default_constructor [link boost_typetraits.reference.has_trivial_constructor has_trivial_default_constructor]] [def __has_trivial_copy_constructor [link boost_typetraits.reference.has_trivial_copy has_trivial_copy_constructor]] +[def __has_trivial_move_constructor [link boost_typetraits.reference.has_trivial_move_constructor has_trivial_move_constructor]] [def __has_trivial_assign [link boost_typetraits.reference.has_trivial_assign has_trivial_assign]] +[def __has_trivial_move_assign [link boost_typetraits.reference.has_trivial_move_assign has_trivial_move_assign]] [def __has_trivial_destructor [link boost_typetraits.reference.has_trivial_destructor has_trivial_destructor]] [def __is_stateless [link boost_typetraits.reference.is_stateless is_stateless]] [def __has_nothrow_constructor [link boost_typetraits.reference.has_nothrow_constructor has_nothrow_constructor]] [def __has_nothrow_copy [link boost_typetraits.reference.has_nothrow_copy has_nothrow_copy]] [def __has_nothrow_default_constructor [link boost_typetraits.reference.has_nothrow_constructor has_nothrow_default_constructor]] [def __has_nothrow_copy_constructor [link boost_typetraits.reference.has_nothrow_copy has_nothrow_copy_constructor]] +[def __is_nothrow_move_constructible [link boost_typetraits.reference.is_nothrow_move_constructible is_nothrow_move_constructible]] [def __has_nothrow_assign [link boost_typetraits.reference.has_nothrow_assign has_nothrow_assign]] +[def __is_nothrow_move_assignable [link boost_typetraits.reference.is_nothrow_move_assignable is_nothrow_move_assignable]] [def __is_base_of [link boost_typetraits.reference.is_base_of is_base_of]] [def __is_virtual_base_of [link boost_typetraits.reference.is_virtual_base_of is_virtual_base_of]] @@ -237,6 +241,8 @@ See __has_trivial_copy. See __has_trivial_constructor. [endsect] [include has_trivial_destructor.qbk] +[include has_trivial_move_assign.qbk] +[include has_trivial_move_constructor.qbk] [include has_unary_minus.qbk] [include has_unary_plus.qbk] [include has_virtual_destructor.qbk] @@ -263,6 +269,8 @@ See __has_trivial_constructor. [include is_member_function_pointer.qbk] [include is_member_object_pointer.qbk] [include is_member_pointer.qbk] +[include is_nothrow_move_assignable.qbk] +[include is_nothrow_move_constructible.qbk] [include is_object.qbk] [include is_pod.qbk] [include is_pointer.qbk] diff --git a/include/boost/type_traits.hpp b/include/boost/type_traits.hpp index acd5aff..ff75050 100644 --- a/include/boost/type_traits.hpp +++ b/include/boost/type_traits.hpp @@ -37,6 +37,8 @@ #include "boost/type_traits/has_trivial_constructor.hpp" #include "boost/type_traits/has_trivial_copy.hpp" #include "boost/type_traits/has_trivial_destructor.hpp" +#include "boost/type_traits/has_trivial_move_assign.hpp" +#include "boost/type_traits/has_trivial_move_constructor.hpp" #include "boost/type_traits/has_virtual_destructor.hpp" #include "boost/type_traits/is_abstract.hpp" #include "boost/type_traits/is_arithmetic.hpp" @@ -59,6 +61,8 @@ #include "boost/type_traits/is_member_function_pointer.hpp" #include "boost/type_traits/is_member_object_pointer.hpp" #include "boost/type_traits/is_member_pointer.hpp" +#include "boost/type_traits/is_nothrow_move_assignable.hpp" +#include "boost/type_traits/is_nothrow_move_constructible.hpp" #include "boost/type_traits/is_object.hpp" #include "boost/type_traits/is_pod.hpp" #include "boost/type_traits/is_polymorphic.hpp" diff --git a/include/boost/type_traits/detail/has_binary_operator.hpp b/include/boost/type_traits/detail/has_binary_operator.hpp index 9257bc2..1fd26ef 100644 --- a/include/boost/type_traits/detail/has_binary_operator.hpp +++ b/include/boost/type_traits/detail/has_binary_operator.hpp @@ -31,7 +31,7 @@ // msvc: // warning C4018: '<' : signed/unsigned mismatch // warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data -// warning C4547: '*' : operator before comma has no effect; expected operator with side-effect +// warning C4547: '*' : operator before comma has no effect; expected operator with side-effect // warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) // warning C4804: '<' : unsafe use of type 'bool' in operation // warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation diff --git a/include/boost/type_traits/has_trivial_move_assign.hpp b/include/boost/type_traits/has_trivial_move_assign.hpp new file mode 100644 index 0000000..db337f7 --- /dev/null +++ b/include/boost/type_traits/has_trivial_move_assign.hpp @@ -0,0 +1,57 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// (C) Copyright Eric Friedman 2002-2003. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED +#define BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +template +struct has_trivial_move_assign_impl +{ +#ifdef BOOST_HAS_TRIVIAL_MOVE_ASSIGN + BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T))); +#else + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::is_pod::value, + ::boost::type_traits::ice_not< ::boost::is_const::value >::value, + ::boost::type_traits::ice_not< ::boost::is_volatile::value >::value + >::value)); +#endif +}; + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_assign,T,::boost::detail::has_trivial_move_assign_impl::value) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void volatile,false) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED diff --git a/include/boost/type_traits/has_trivial_move_constructor.hpp b/include/boost/type_traits/has_trivial_move_constructor.hpp new file mode 100644 index 0000000..a341834 --- /dev/null +++ b/include/boost/type_traits/has_trivial_move_constructor.hpp @@ -0,0 +1,57 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// (C) Copyright Eric Friedman 2002-2003. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED +#define BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail { + +template +struct has_trivial_move_ctor_impl +{ +#ifdef BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR + BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T))); +#else + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::is_pod::value, + ::boost::type_traits::ice_not< ::boost::is_volatile::value >::value + >::value)); +#endif +}; + +} // namespace detail + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_constructor,T,::boost::detail::has_trivial_move_ctor_impl::value) + +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void volatile,false) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED diff --git a/include/boost/type_traits/intrinsics.hpp b/include/boost/type_traits/intrinsics.hpp index 1799240..799f9b6 100644 --- a/include/boost/type_traits/intrinsics.hpp +++ b/include/boost/type_traits/intrinsics.hpp @@ -24,7 +24,9 @@ // BOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union) // BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect // BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy +// BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(boost::move(t)) <==> memcpy // BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy +// BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = boost::move(u) <==> memcpy // BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect // BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw // BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw @@ -106,6 +108,11 @@ // This one fails if the default alignment has been changed with /Zp: // # define BOOST_ALIGNMENT_OF(T) __alignof(T) +# if defined(_MSC_VER) && (_MSC_VER >= 1700) +# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::boost::is_pod::value) && !::boost::is_volatile::value) +# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::boost::is_pod::value) && ! ::boost::is_const::value && !::boost::is_volatile::value) +# endif + # define BOOST_HAS_TYPE_TRAITS_INTRINSICS #endif @@ -183,6 +190,12 @@ # if __has_feature(is_polymorphic) # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) # endif +# if __has_feature(has_trivial_move_constructor) +# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T) +# endif +# if __has_feature(has_trivial_move_assign) +# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T) +# endif # define BOOST_ALIGNMENT_OF(T) __alignof(T) # define BOOST_HAS_TYPE_TRAITS_INTRINSICS diff --git a/include/boost/type_traits/is_nothrow_move_assignable.hpp b/include/boost/type_traits/is_nothrow_move_assignable.hpp new file mode 100644 index 0000000..5a3427f --- /dev/null +++ b/include/boost/type_traits/is_nothrow_move_assignable.hpp @@ -0,0 +1,84 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// (C) Copyright Eric Friedman 2002-2003. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED +#define BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail{ + +#ifndef BOOST_NO_CXX11_NOEXCEPT + +template +struct false_or_cpp11_noexcept_move_assignable: public ::boost::false_type {}; + +template +struct false_or_cpp11_noexcept_move_assignable < + T, + typename ::boost::enable_if_c() = ::boost::declval())>::type + > : public ::boost::integral_constant() = ::boost::declval())> +{}; + +template +struct is_nothrow_move_assignable_imp{ + BOOST_STATIC_CONSTANT(bool, value = ( + ::boost::type_traits::ice_and< + ::boost::type_traits::ice_not< ::boost::is_volatile::value >::value, + ::boost::type_traits::ice_not< ::boost::is_reference::value >::value, + ::boost::detail::false_or_cpp11_noexcept_move_assignable::value + >::value)); +}; + +#else + +template +struct is_nothrow_move_assignable_imp{ + BOOST_STATIC_CONSTANT(bool, value = ( + ::boost::type_traits::ice_and< + ::boost::type_traits::ice_or< + ::boost::has_trivial_move_assign::value, + ::boost::has_nothrow_assign::value + >::value, + ::boost::type_traits::ice_not< ::boost::is_array::value >::value + >::value)); +}; + +#endif + +} + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_assignable,T,::boost::detail::is_nothrow_move_assignable_imp::value) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void volatile,false) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED diff --git a/include/boost/type_traits/is_nothrow_move_constructible.hpp b/include/boost/type_traits/is_nothrow_move_constructible.hpp new file mode 100644 index 0000000..bc7fb88 --- /dev/null +++ b/include/boost/type_traits/is_nothrow_move_constructible.hpp @@ -0,0 +1,84 @@ + +// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. +// (C) Copyright Eric Friedman 2002-2003. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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). +// +// See http://www.boost.org/libs/type_traits for most recent version including documentation. + +#ifndef BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED +#define BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// should be the last #include +#include + +namespace boost { + +namespace detail{ + +#ifndef BOOST_NO_CXX11_NOEXCEPT + +template +struct false_or_cpp11_noexcept_move_constructible: public ::boost::false_type {}; + +template +struct false_or_cpp11_noexcept_move_constructible < + T, + typename ::boost::enable_if_c()))>::type + > : public ::boost::integral_constant()))> +{}; + +template +struct is_nothrow_move_constructible_imp{ + BOOST_STATIC_CONSTANT(bool, value = + (::boost::type_traits::ice_and< + ::boost::type_traits::ice_not< ::boost::is_volatile::value >::value, + ::boost::type_traits::ice_not< ::boost::is_reference::value >::value, + ::boost::detail::false_or_cpp11_noexcept_move_constructible::value + >::value)); +}; + +#else + +template +struct is_nothrow_move_constructible_imp{ + BOOST_STATIC_CONSTANT(bool, value =( + ::boost::type_traits::ice_and< + ::boost::type_traits::ice_or< + ::boost::has_trivial_move_constructor::value, + ::boost::has_nothrow_copy::value + >::value, + ::boost::type_traits::ice_not< ::boost::is_array::value >::value + >::value)); +}; + +#endif + +} + +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::boost::detail::is_nothrow_move_constructible_imp::value) + +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void,false) +#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const volatile,false) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void volatile,false) +#endif + +} // namespace boost + +#include + +#endif // BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED diff --git a/include/boost/type_traits/is_pod.hpp b/include/boost/type_traits/is_pod.hpp index 4691e66..b4e1733 100644 --- a/include/boost/type_traits/is_pod.hpp +++ b/include/boost/type_traits/is_pod.hpp @@ -131,8 +131,10 @@ BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true) } // namespace detail -BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::detail::is_pod_impl::value) BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl::value) +// is_POD is the old depricated name for this trait, do not use this as it may +// be removed in future without warning!! +BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::is_pod::value) } // namespace boost diff --git a/test/has_trivial_move_assign_test.cpp b/test/has_trivial_move_assign_test.cpp new file mode 100644 index 0000000..d54fcdc --- /dev/null +++ b/test/has_trivial_move_assign_test.cpp @@ -0,0 +1,210 @@ + +// (C) Copyright John Maddock 2000. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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) + +#include "test.hpp" +#include "check_integral_constant.hpp" +#ifdef TEST_STD +# include +#else +# include +#endif + +TT_TEST_BEGIN(has_trivial_move_assign) + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +#ifdef BOOST_HAS_LONG_LONG + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::ulong_long_type>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::long_long_type>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::ulong_long_type const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::long_long_type const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::ulong_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::long_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::ulong_long_type const volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign< ::boost::long_long_type const volatile>::value, false); +#endif +#endif + +#ifdef BOOST_HAS_MS_INT64 + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int8>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int8 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int8 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int8 const volatile>::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int16>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int16 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int16 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int16 const volatile>::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int32>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int32 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int32 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int32 const volatile>::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int64>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int64 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int64 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign<__int64 const volatile>::value, false); +#endif +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +// cases we would like to succeed but can't implement in the language: +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, true, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign >::value, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign >::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign >::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign >::value, true, false); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_assign::value, false); + +TT_TEST_END + + + diff --git a/test/has_trivial_move_constructor_test.cpp b/test/has_trivial_move_constructor_test.cpp new file mode 100644 index 0000000..472df99 --- /dev/null +++ b/test/has_trivial_move_constructor_test.cpp @@ -0,0 +1,215 @@ + +// (C) Copyright John Maddock 2000. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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) + +#include "test.hpp" +#include "check_integral_constant.hpp" +#ifdef TEST_STD +# include +#else +# include +#endif + +TT_TEST_BEGIN(has_trivial_move_constructor) + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif +#ifdef BOOST_HAS_LONG_LONG + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::ulong_long_type>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::long_long_type>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::ulong_long_type const>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::long_long_type const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::ulong_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::long_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::ulong_long_type const volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor< ::boost::long_long_type const volatile>::value, false); +#endif +#endif + +#ifdef BOOST_HAS_MS_INT64 + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int8>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int8 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int8 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int8 const volatile>::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int16>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int16 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int16 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int16 const volatile>::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int32>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int32 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int32 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int32 const volatile>::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int64>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int64 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int64 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor<__int64 const volatile>::value, false); +#endif +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +// cases we would like to succeed but can't implement in the language: +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, true, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor >::value, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor >::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor >::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor >::value, true, false); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_move_constructor::value, false); + +TT_TEST_END + + + + + + + + diff --git a/test/is_nothrow_move_assignable_test.cpp b/test/is_nothrow_move_assignable_test.cpp new file mode 100644 index 0000000..2202701 --- /dev/null +++ b/test/is_nothrow_move_assignable_test.cpp @@ -0,0 +1,216 @@ + +// (C) Copyright John Maddock 2000. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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) + +#include "test.hpp" +#include "check_integral_constant.hpp" +#ifdef TEST_STD +# include +#else +# include +#endif + +TT_TEST_BEGIN(is_nothrow_move_assignable) + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +#ifdef BOOST_HAS_LONG_LONG + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::ulong_long_type>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::long_long_type>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::ulong_long_type const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::long_long_type const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::ulong_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::long_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::ulong_long_type const volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable< ::boost::long_long_type const volatile>::value, false); +#endif +#endif + +#ifdef BOOST_HAS_MS_INT64 + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int8>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int8 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int8 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int8 const volatile>::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int16>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int16 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int16 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int16 const volatile>::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int32>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int32 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int32 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int32 const volatile>::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int64>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int64 const>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int64 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable<__int64 const volatile>::value, false); +#endif +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +// cases we would like to succeed but can't implement in the language: +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_CXX11_NOEXCEPT) +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, true); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_assignable::value, false); + +TT_TEST_END + + + diff --git a/test/is_nothrow_move_constructible_test.cpp b/test/is_nothrow_move_constructible_test.cpp new file mode 100644 index 0000000..e17c3fd --- /dev/null +++ b/test/is_nothrow_move_constructible_test.cpp @@ -0,0 +1,212 @@ + +// (C) Copyright John Maddock 2000. +// (C) Copyright Antony Polukhin 2013. +// Use, modification and distribution are subject to 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) + +#include "test.hpp" +#include "check_integral_constant.hpp" +#ifdef TEST_STD +# include +#else +# include +#endif + +TT_TEST_BEGIN(is_nothrow_move_constructible) + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +#ifdef BOOST_HAS_LONG_LONG + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::ulong_long_type>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::long_long_type>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::ulong_long_type const>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::long_long_type const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::ulong_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::long_long_type volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::ulong_long_type const volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible< ::boost::long_long_type const volatile>::value, false); +#endif +#endif + +#ifdef BOOST_HAS_MS_INT64 + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int8>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int8 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int8 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int8 const volatile>::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int16>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int16 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int16 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int16 const volatile>::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int32>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int32 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int32 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int32 const volatile>::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int64>::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int64 const>::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int64 volatile>::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible<__int64 const volatile>::value, false); +#endif +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#ifndef TEST_STD +// unspecified behaviour: +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +#endif +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +// cases we would like to succeed but can't implement in the language: +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true, false); +BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_CXX11_NOEXCEPT) +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, true); +#endif + +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_nothrow_move_constructible::value, false); + +TT_TEST_END + + + diff --git a/test/is_polymorphic_test.cpp b/test/is_polymorphic_test.cpp index c73a1d5..7426be8 100644 --- a/test/is_polymorphic_test.cpp +++ b/test/is_polymorphic_test.cpp @@ -20,6 +20,10 @@ #include // more things to test #endif +#if defined(BOOST_MSVC) && (_MSC_VER >= 1700) +#pragma warning(disable:4250) +#endif + // this test was added to check for bug reported on 21 May 2003: struct poly_bug { virtual int foo() = 0; }; diff --git a/test/test.hpp b/test/test.hpp index 66809d5..4b826df 100644 --- a/test/test.hpp +++ b/test/test.hpp @@ -276,6 +276,18 @@ struct nothrow_assign_UDT { return true; } }; +#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES +struct nothrow_move_UDT +{ + nothrow_move_UDT(); + nothrow_move_UDT(nothrow_move_UDT&&) throw(); + nothrow_move_UDT& operator=(nothrow_move_UDT&&) throw(); + bool operator==(const nothrow_move_UDT&)const + { return true; } +}; +#endif + + struct nothrow_construct_UDT { nothrow_construct_UDT()throw();