diff --git a/doc/html/boost_typetraits/background.html b/doc/html/boost_typetraits/background.html index c997f66..709733e 100644 --- a/doc/html/boost_typetraits/background.html +++ b/doc/html/boost_typetraits/background.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -56,7 +56,7 @@ method available to them.

- + Type Traits

@@ -84,7 +84,7 @@ given.

- + Implementation

@@ -174,7 +174,7 @@ in the default template.

- + Optimized copy

@@ -247,7 +247,7 @@ otherwise it will call the "slow but safe version".

- + Was it worth it?

@@ -280,7 +280,7 @@

-

Table 1.1. Time taken to copy 1000 elements using `copy<const +

Table 1.1. Time taken to copy 1000 elements using `copy<const T*, T*>` (times in micro-seconds)

@@ -379,7 +379,7 @@

- + Pair of References

@@ -416,7 +416,7 @@ to hold non-reference types, references, and constant references:

-

Table 1.2. Required Constructor Argument Types

+

Table 1.2. Required Constructor Argument Types

@@ -481,7 +481,7 @@ adds a reference to its type, unless it is already a reference.

-

Table 1.3. Using add_reference to synthesize the correct constructor +

Table 1.3. Using add_reference to synthesize the correct constructor type

@@ -598,7 +598,7 @@ easier to maintain and easier to understand.

- + Conclusion

@@ -611,7 +611,7 @@ can be optimal as well as generic.

- + Acknowledgements

@@ -619,7 +619,7 @@ comments when preparing this article.

- + References
    diff --git a/doc/html/boost_typetraits/category.html b/doc/html/boost_typetraits/category.html index fd7037f..43f6f85 100644 --- a/doc/html/boost_typetraits/category.html +++ b/doc/html/boost_typetraits/category.html @@ -14,8 +14,8 @@
- - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/category/alignment.html b/doc/html/boost_typetraits/category/alignment.html index 597e5c4..1ce8287 100644 --- a/doc/html/boost_typetraits/category/alignment.html +++ b/doc/html/boost_typetraits/category/alignment.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/category/function.html b/doc/html/boost_typetraits/category/function.html index cf89345..88854ff 100644 --- a/doc/html/boost_typetraits/category/function.html +++ b/doc/html/boost_typetraits/category/function.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/category/transform.html b/doc/html/boost_typetraits/category/transform.html index 9435034..663a625 100644 --- a/doc/html/boost_typetraits/category/transform.html +++ b/doc/html/boost_typetraits/category/transform.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -91,7 +91,7 @@ struct remove_volatile;
- + Broken Compiler Workarounds:
diff --git a/doc/html/boost_typetraits/category/value_traits.html b/doc/html/boost_typetraits/category/value_traits.html index d31a0b6..550cf59 100644 --- a/doc/html/boost_typetraits/category/value_traits.html +++ b/doc/html/boost_typetraits/category/value_traits.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/category/value_traits/primary.html b/doc/html/boost_typetraits/category/value_traits/primary.html index f317f13..668f886 100644 --- a/doc/html/boost_typetraits/category/value_traits/primary.html +++ b/doc/html/boost_typetraits/category/value_traits/primary.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/category/value_traits/properties.html b/doc/html/boost_typetraits/category/value_traits/properties.html index 0a21473..278c74c 100644 --- a/doc/html/boost_typetraits/category/value_traits/properties.html +++ b/doc/html/boost_typetraits/category/value_traits/properties.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/category/value_traits/relate.html b/doc/html/boost_typetraits/category/value_traits/relate.html index 6a791a4..598e5fb 100644 --- a/doc/html/boost_typetraits/category/value_traits/relate.html +++ b/doc/html/boost_typetraits/category/value_traits/relate.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/credits.html b/doc/html/boost_typetraits/credits.html index 69bd783..201e36b 100644 --- a/doc/html/boost_typetraits/credits.html +++ b/doc/html/boost_typetraits/credits.html @@ -13,8 +13,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/examples.html b/doc/html/boost_typetraits/examples.html index d0a09ff..01cbcd3 100644 --- a/doc/html/boost_typetraits/examples.html +++ b/doc/html/boost_typetraits/examples.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/examples/copy.html b/doc/html/boost_typetraits/examples/copy.html index 76656b3..13e95b4 100644 --- a/doc/html/boost_typetraits/examples/copy.html +++ b/doc/html/boost_typetraits/examples/copy.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/examples/destruct.html b/doc/html/boost_typetraits/examples/destruct.html index cb91b48..c93989f 100644 --- a/doc/html/boost_typetraits/examples/destruct.html +++ b/doc/html/boost_typetraits/examples/destruct.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/examples/fill.html b/doc/html/boost_typetraits/examples/fill.html index d8b98e7..9939850 100644 --- a/doc/html/boost_typetraits/examples/fill.html +++ b/doc/html/boost_typetraits/examples/fill.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/examples/iter.html b/doc/html/boost_typetraits/examples/iter.html index 3283949..23c7385 100644 --- a/doc/html/boost_typetraits/examples/iter.html +++ b/doc/html/boost_typetraits/examples/iter.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/examples/to_double.html b/doc/html/boost_typetraits/examples/to_double.html index a9fb6d4..2fe87cc 100644 --- a/doc/html/boost_typetraits/examples/to_double.html +++ b/doc/html/boost_typetraits/examples/to_double.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/intrinsics.html b/doc/html/boost_typetraits/intrinsics.html index 5445124..3eecb24 100644 --- a/doc/html/boost_typetraits/intrinsics.html +++ b/doc/html/boost_typetraits/intrinsics.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -71,7 +71,7 @@ of the following macros:

-

Table 1.4. Macros for Compiler Intrinsics

+

Table 1.4. Macros for Compiler Intrinsics

@@ -220,6 +220,90 @@

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ BOOST_IS_ABSTRACT(T) +

+
+

+ Should evaluate to true if T is an abstract type +

+
+

+ BOOST_IS_BASE_OF(T,U) +

+
+

+ Should evaluate to true if T is a base class of U +

+
+

+ BOOST_IS_CLASS(T) +

+
+

+ Should evaluate to true if T is a class type +

+
+

+ BOOST_IS_CONVERTIBLE(T,U) +

+
+

+ Should evaluate to true if T is convertible to U +

+
+

+ BOOST_IS_ENUM(T) +

+
+

+ Should evaluate to true is T is an enum +

+
+

+ BOOST_IS_POLYMORPHIC(T) +

+
+

+ Should evaluate to true if T is a polymorphic type +

+
+

+ BOOST_ALIGNMENT_OF(T) +

+
+

+ Should evaluate to the alignment requirements of type T. +

+
diff --git a/doc/html/boost_typetraits/intro.html b/doc/html/boost_typetraits/intro.html index aa8f8f9..b874987 100644 --- a/doc/html/boost_typetraits/intro.html +++ b/doc/html/boost_typetraits/intro.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/mpl.html b/doc/html/boost_typetraits/mpl.html index b4f8efb..b058fad 100644 --- a/doc/html/boost_typetraits/mpl.html +++ b/doc/html/boost_typetraits/mpl.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference.html b/doc/html/boost_typetraits/reference.html index 46f0f9e..40c1482 100644 --- a/doc/html/boost_typetraits/reference.html +++ b/doc/html/boost_typetraits/reference.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/add_const.html b/doc/html/boost_typetraits/reference/add_const.html index 88c7d52..226b327 100644 --- a/doc/html/boost_typetraits/reference/add_const.html +++ b/doc/html/boost_typetraits/reference/add_const.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.5. Examples

+

Table 1.5. Examples

diff --git a/doc/html/boost_typetraits/reference/add_cv.html b/doc/html/boost_typetraits/reference/add_cv.html index 14aa5ba..dd451c4 100644 --- a/doc/html/boost_typetraits/reference/add_cv.html +++ b/doc/html/boost_typetraits/reference/add_cv.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -54,7 +54,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.6. Examples

+

Table 1.6. Examples

diff --git a/doc/html/boost_typetraits/reference/add_pointer.html b/doc/html/boost_typetraits/reference/add_pointer.html index a12dafc..b09f78a 100644 --- a/doc/html/boost_typetraits/reference/add_pointer.html +++ b/doc/html/boost_typetraits/reference/add_pointer.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -56,7 +56,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.7. Examples

+

Table 1.7. Examples

diff --git a/doc/html/boost_typetraits/reference/add_reference.html b/doc/html/boost_typetraits/reference/add_reference.html index 7c41f87..ebc8eee 100644 --- a/doc/html/boost_typetraits/reference/add_reference.html +++ b/doc/html/boost_typetraits/reference/add_reference.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.8. Examples

+

Table 1.8. Examples

diff --git a/doc/html/boost_typetraits/reference/add_volatile.html b/doc/html/boost_typetraits/reference/add_volatile.html index 7671f29..7fc6a02 100644 --- a/doc/html/boost_typetraits/reference/add_volatile.html +++ b/doc/html/boost_typetraits/reference/add_volatile.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.9. Examples

+

Table 1.9. Examples

diff --git a/doc/html/boost_typetraits/reference/aligned_storage.html b/doc/html/boost_typetraits/reference/aligned_storage.html index d19d847..dd4d40c 100644 --- a/doc/html/boost_typetraits/reference/aligned_storage.html +++ b/doc/html/boost_typetraits/reference/aligned_storage.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/reference/alignment_of.html b/doc/html/boost_typetraits/reference/alignment_of.html index 5ddd52e..e98f4bd 100644 --- a/doc/html/boost_typetraits/reference/alignment_of.html +++ b/doc/html/boost_typetraits/reference/alignment_of.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/decay.html b/doc/html/boost_typetraits/reference/decay.html index 7e05ace..9af1fef 100644 --- a/doc/html/boost_typetraits/reference/decay.html +++ b/doc/html/boost_typetraits/reference/decay.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -48,7 +48,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.10. Examples

+

Table 1.10. Examples

diff --git a/doc/html/boost_typetraits/reference/extent.html b/doc/html/boost_typetraits/reference/extent.html index e1d5229..ff75445 100644 --- a/doc/html/boost_typetraits/reference/extent.html +++ b/doc/html/boost_typetraits/reference/extent.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/reference/floating_point_promotion.html b/doc/html/boost_typetraits/reference/floating_point_promotion.html index 5abf23a..02b4afd 100644 --- a/doc/html/boost_typetraits/reference/floating_point_promotion.html +++ b/doc/html/boost_typetraits/reference/floating_point_promotion.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -49,7 +49,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.11. Examples

+

Table 1.11. Examples

diff --git a/doc/html/boost_typetraits/reference/function_traits.html b/doc/html/boost_typetraits/reference/function_traits.html index e8f50ec..7c27d49 100644 --- a/doc/html/boost_typetraits/reference/function_traits.html +++ b/doc/html/boost_typetraits/reference/function_traits.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -59,7 +59,7 @@

-

Table 1.12. Function Traits Members

+

Table 1.12. Function Traits Members

@@ -122,7 +122,7 @@

-

Table 1.13. Examples

+

Table 1.13. Examples

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 d9e8de1..4fd3c42 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 @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/reference/has_nothrow_assign.html b/doc/html/boost_typetraits/reference/has_nothrow_assign.html index 1211cd3..16acc7b 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_assign.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_assign.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_nothrow_constructor.html b/doc/html/boost_typetraits/reference/has_nothrow_constructor.html index a5b50e8..1e03f71 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_constructor.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_constructor.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_nothrow_copy.html b/doc/html/boost_typetraits/reference/has_nothrow_copy.html index b5e4bbd..9346165 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_copy.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_copy.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
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 24a431d..b59f9bc 100644 --- a/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html +++ b/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_trivial_assign.html b/doc/html/boost_typetraits/reference/has_trivial_assign.html index 1718206..116deef 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_assign.html +++ b/doc/html/boost_typetraits/reference/has_trivial_assign.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_trivial_constructor.html b/doc/html/boost_typetraits/reference/has_trivial_constructor.html index e21fc4a..82f2984 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_constructor.html +++ b/doc/html/boost_typetraits/reference/has_trivial_constructor.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_trivial_copy.html b/doc/html/boost_typetraits/reference/has_trivial_copy.html index 0c55e4a..477049b 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_copy.html +++ b/doc/html/boost_typetraits/reference/has_trivial_copy.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
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 1f16bf4..a26b6be 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html +++ b/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
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 e3e740c..6079d35 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_def_cons.html +++ b/doc/html/boost_typetraits/reference/has_trivial_def_cons.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_trivial_destructor.html b/doc/html/boost_typetraits/reference/has_trivial_destructor.html index a6f9ea8..2b7379e 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_destructor.html +++ b/doc/html/boost_typetraits/reference/has_trivial_destructor.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/has_virtual_destructor.html b/doc/html/boost_typetraits/reference/has_virtual_destructor.html index ddfd4f6..06a92b3 100644 --- a/doc/html/boost_typetraits/reference/has_virtual_destructor.html +++ b/doc/html/boost_typetraits/reference/has_virtual_destructor.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/integral_constant.html b/doc/html/boost_typetraits/reference/integral_constant.html index 31764d2..45a0f4e 100644 --- a/doc/html/boost_typetraits/reference/integral_constant.html +++ b/doc/html/boost_typetraits/reference/integral_constant.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/integral_promotion.html b/doc/html/boost_typetraits/reference/integral_promotion.html index d3b7dbe..fd454b8 100644 --- a/doc/html/boost_typetraits/reference/integral_promotion.html +++ b/doc/html/boost_typetraits/reference/integral_promotion.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -49,7 +49,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.14. Examples

+

Table 1.14. Examples

diff --git a/doc/html/boost_typetraits/reference/is_abstract.html b/doc/html/boost_typetraits/reference/is_abstract.html index 1196f5f..b61bdd2 100644 --- a/doc/html/boost_typetraits/reference/is_abstract.html +++ b/doc/html/boost_typetraits/reference/is_abstract.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/reference/is_arithmetic.html b/doc/html/boost_typetraits/reference/is_arithmetic.html index d0fe6f5..e1eef3e 100644 --- a/doc/html/boost_typetraits/reference/is_arithmetic.html +++ b/doc/html/boost_typetraits/reference/is_arithmetic.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_array.html b/doc/html/boost_typetraits/reference/is_array.html index 23b87a8..fe58271 100644 --- a/doc/html/boost_typetraits/reference/is_array.html +++ b/doc/html/boost_typetraits/reference/is_array.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_base_of.html b/doc/html/boost_typetraits/reference/is_base_of.html index d5c1db4..7eac36f 100644 --- a/doc/html/boost_typetraits/reference/is_base_of.html +++ b/doc/html/boost_typetraits/reference/is_base_of.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_class.html b/doc/html/boost_typetraits/reference/is_class.html index dd78a3b..9741bab 100644 --- a/doc/html/boost_typetraits/reference/is_class.html +++ b/doc/html/boost_typetraits/reference/is_class.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_complex.html b/doc/html/boost_typetraits/reference/is_complex.html index 2f1ace1..45c42a8 100644 --- a/doc/html/boost_typetraits/reference/is_complex.html +++ b/doc/html/boost_typetraits/reference/is_complex.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_compound.html b/doc/html/boost_typetraits/reference/is_compound.html index 5e4faaf..b72db34 100644 --- a/doc/html/boost_typetraits/reference/is_compound.html +++ b/doc/html/boost_typetraits/reference/is_compound.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_const.html b/doc/html/boost_typetraits/reference/is_const.html index d543c23..7dc9e95 100644 --- a/doc/html/boost_typetraits/reference/is_const.html +++ b/doc/html/boost_typetraits/reference/is_const.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_convertible.html b/doc/html/boost_typetraits/reference/is_convertible.html index 0a89de1..9b78074 100644 --- a/doc/html/boost_typetraits/reference/is_convertible.html +++ b/doc/html/boost_typetraits/reference/is_convertible.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_empty.html b/doc/html/boost_typetraits/reference/is_empty.html index d528b1c..97301d9 100644 --- a/doc/html/boost_typetraits/reference/is_empty.html +++ b/doc/html/boost_typetraits/reference/is_empty.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_enum.html b/doc/html/boost_typetraits/reference/is_enum.html index a4919b1..a09cb0b 100644 --- a/doc/html/boost_typetraits/reference/is_enum.html +++ b/doc/html/boost_typetraits/reference/is_enum.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_floating_point.html b/doc/html/boost_typetraits/reference/is_floating_point.html index fa5a303..52ae734 100644 --- a/doc/html/boost_typetraits/reference/is_floating_point.html +++ b/doc/html/boost_typetraits/reference/is_floating_point.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_function.html b/doc/html/boost_typetraits/reference/is_function.html index c8f9f74..f824337 100644 --- a/doc/html/boost_typetraits/reference/is_function.html +++ b/doc/html/boost_typetraits/reference/is_function.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_fundamental.html b/doc/html/boost_typetraits/reference/is_fundamental.html index 3107b1c..c630002 100644 --- a/doc/html/boost_typetraits/reference/is_fundamental.html +++ b/doc/html/boost_typetraits/reference/is_fundamental.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_integral.html b/doc/html/boost_typetraits/reference/is_integral.html index 8a5f237..07a2d50 100644 --- a/doc/html/boost_typetraits/reference/is_integral.html +++ b/doc/html/boost_typetraits/reference/is_integral.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
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 27b52ff..d0809fa 100644 --- a/doc/html/boost_typetraits/reference/is_member_function_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_function_pointer.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
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 7fbb1e6..018872c 100644 --- a/doc/html/boost_typetraits/reference/is_member_object_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_object_pointer.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_member_pointer.html b/doc/html/boost_typetraits/reference/is_member_pointer.html index 2b05ea4..d5c8263 100644 --- a/doc/html/boost_typetraits/reference/is_member_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_pointer.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_object.html b/doc/html/boost_typetraits/reference/is_object.html index 93cb157..9a9a917 100644 --- a/doc/html/boost_typetraits/reference/is_object.html +++ b/doc/html/boost_typetraits/reference/is_object.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_pod.html b/doc/html/boost_typetraits/reference/is_pod.html index d849d18..2912b2b 100644 --- a/doc/html/boost_typetraits/reference/is_pod.html +++ b/doc/html/boost_typetraits/reference/is_pod.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_pointer.html b/doc/html/boost_typetraits/reference/is_pointer.html index 20c9967..e4e2036 100644 --- a/doc/html/boost_typetraits/reference/is_pointer.html +++ b/doc/html/boost_typetraits/reference/is_pointer.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_polymorphic.html b/doc/html/boost_typetraits/reference/is_polymorphic.html index 851df16..3bf1cfe 100644 --- a/doc/html/boost_typetraits/reference/is_polymorphic.html +++ b/doc/html/boost_typetraits/reference/is_polymorphic.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_reference.html b/doc/html/boost_typetraits/reference/is_reference.html index 269c200..3b9010a 100644 --- a/doc/html/boost_typetraits/reference/is_reference.html +++ b/doc/html/boost_typetraits/reference/is_reference.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_same.html b/doc/html/boost_typetraits/reference/is_same.html index 5287f7d..824003f 100644 --- a/doc/html/boost_typetraits/reference/is_same.html +++ b/doc/html/boost_typetraits/reference/is_same.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_scalar.html b/doc/html/boost_typetraits/reference/is_scalar.html index 73f94bf..4e0e016 100644 --- a/doc/html/boost_typetraits/reference/is_scalar.html +++ b/doc/html/boost_typetraits/reference/is_scalar.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_signed.html b/doc/html/boost_typetraits/reference/is_signed.html index 1d7eca7..9f46b2a 100644 --- a/doc/html/boost_typetraits/reference/is_signed.html +++ b/doc/html/boost_typetraits/reference/is_signed.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_stateless.html b/doc/html/boost_typetraits/reference/is_stateless.html index e2977f8..43b34e5 100644 --- a/doc/html/boost_typetraits/reference/is_stateless.html +++ b/doc/html/boost_typetraits/reference/is_stateless.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_union.html b/doc/html/boost_typetraits/reference/is_union.html index 8e138d5..2880c0e 100644 --- a/doc/html/boost_typetraits/reference/is_union.html +++ b/doc/html/boost_typetraits/reference/is_union.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_unsigned.html b/doc/html/boost_typetraits/reference/is_unsigned.html index 90fd7e8..d892e68 100644 --- a/doc/html/boost_typetraits/reference/is_unsigned.html +++ b/doc/html/boost_typetraits/reference/is_unsigned.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_void.html b/doc/html/boost_typetraits/reference/is_void.html index dd8be37..569a964 100644 --- a/doc/html/boost_typetraits/reference/is_void.html +++ b/doc/html/boost_typetraits/reference/is_void.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/is_volatile.html b/doc/html/boost_typetraits/reference/is_volatile.html index 3c9e428..ca4673b 100644 --- a/doc/html/boost_typetraits/reference/is_volatile.html +++ b/doc/html/boost_typetraits/reference/is_volatile.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/boost_typetraits/reference/make_signed.html b/doc/html/boost_typetraits/reference/make_signed.html index 361ae54..9cd85d1 100644 --- a/doc/html/boost_typetraits/reference/make_signed.html +++ b/doc/html/boost_typetraits/reference/make_signed.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -54,7 +54,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.15. Examples

+

Table 1.15. Examples

diff --git a/doc/html/boost_typetraits/reference/make_unsigned.html b/doc/html/boost_typetraits/reference/make_unsigned.html index bf70792..ba8146f 100644 --- a/doc/html/boost_typetraits/reference/make_unsigned.html +++ b/doc/html/boost_typetraits/reference/make_unsigned.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -54,7 +54,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.16. Examples

+

Table 1.16. Examples

diff --git a/doc/html/boost_typetraits/reference/promote.html b/doc/html/boost_typetraits/reference/promote.html index 08d606f..94ade5e 100644 --- a/doc/html/boost_typetraits/reference/promote.html +++ b/doc/html/boost_typetraits/reference/promote.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -51,7 +51,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.17. Examples

+

Table 1.17. Examples

diff --git a/doc/html/boost_typetraits/reference/rank.html b/doc/html/boost_typetraits/reference/rank.html index 834e0fa..96ff595 100644 --- a/doc/html/boost_typetraits/reference/rank.html +++ b/doc/html/boost_typetraits/reference/rank.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/reference/remove_all_extents.html b/doc/html/boost_typetraits/reference/remove_all_extents.html index 7a51af8..498f838 100644 --- a/doc/html/boost_typetraits/reference/remove_all_extents.html +++ b/doc/html/boost_typetraits/reference/remove_all_extents.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -54,7 +54,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.18. Examples

+

Table 1.18. Examples

diff --git a/doc/html/boost_typetraits/reference/remove_const.html b/doc/html/boost_typetraits/reference/remove_const.html index fabea57..86b36f6 100644 --- a/doc/html/boost_typetraits/reference/remove_const.html +++ b/doc/html/boost_typetraits/reference/remove_const.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.19. Examples

+

Table 1.19. Examples

diff --git a/doc/html/boost_typetraits/reference/remove_cv.html b/doc/html/boost_typetraits/reference/remove_cv.html index 886a0a2..5eac7be 100644 --- a/doc/html/boost_typetraits/reference/remove_cv.html +++ b/doc/html/boost_typetraits/reference/remove_cv.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.20. Examples

+

Table 1.20. Examples

diff --git a/doc/html/boost_typetraits/reference/remove_extent.html b/doc/html/boost_typetraits/reference/remove_extent.html index b6946e1..607e43f 100644 --- a/doc/html/boost_typetraits/reference/remove_extent.html +++ b/doc/html/boost_typetraits/reference/remove_extent.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -54,7 +54,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.21. Examples

+

Table 1.21. Examples

diff --git a/doc/html/boost_typetraits/reference/remove_pointer.html b/doc/html/boost_typetraits/reference/remove_pointer.html index 4672498..b5736c4 100644 --- a/doc/html/boost_typetraits/reference/remove_pointer.html +++ b/doc/html/boost_typetraits/reference/remove_pointer.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.22. Examples

+

Table 1.22. Examples

diff --git a/doc/html/boost_typetraits/reference/remove_reference.html b/doc/html/boost_typetraits/reference/remove_reference.html index d1fa0b9..57118d8 100644 --- a/doc/html/boost_typetraits/reference/remove_reference.html +++ b/doc/html/boost_typetraits/reference/remove_reference.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.23. Examples

+

Table 1.23. Examples

diff --git a/doc/html/boost_typetraits/reference/remove_volatile.html b/doc/html/boost_typetraits/reference/remove_volatile.html index 95b9e29..20cc90f 100644 --- a/doc/html/boost_typetraits/reference/remove_volatile.html +++ b/doc/html/boost_typetraits/reference/remove_volatile.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

@@ -53,7 +53,7 @@ or #include <boost/type_traits.hpp>

-

Table 1.24. Examples

+

Table 1.24. Examples

diff --git a/doc/html/boost_typetraits/reference/type_with_alignment.html b/doc/html/boost_typetraits/reference/type_with_alignment.html index d589e9e..0a619f3 100644 --- a/doc/html/boost_typetraits/reference/type_with_alignment.html +++ b/doc/html/boost_typetraits/reference/type_with_alignment.html @@ -14,8 +14,8 @@ - - + +
Boost C++ Libraries Home LibrariesPeopleFAQPeopleFAQ More

diff --git a/doc/html/boost_typetraits/user_defined.html b/doc/html/boost_typetraits/user_defined.html index 86abd4c..7eaa8ce 100644 --- a/doc/html/boost_typetraits/user_defined.html +++ b/doc/html/boost_typetraits/user_defined.html @@ -14,8 +14,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
diff --git a/doc/html/index.html b/doc/html/index.html index a0fbb5e..2e1bab5 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -12,8 +12,8 @@ Boost C++ Libraries Home Libraries -People -FAQ +People +FAQ More
@@ -30,7 +30,7 @@ Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert Ramey and Jeremy Siek

-

+

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)

diff --git a/doc/intrinsics.qbk b/doc/intrinsics.qbk index 4432772..2d171f6 100644 --- a/doc/intrinsics.qbk +++ b/doc/intrinsics.qbk @@ -57,6 +57,15 @@ a matter of defining one of more of the following macros: [[BOOST_HAS_NOTHROW_COPY(T)][Should evaluate to true if `T(t)` can not throw]] [[BOOST_HAS_NOTHROW_ASSIGN(T)][Should evaluate to true if `T t, u; t = u` can not throw]] [[BOOST_HAS_VIRTUAL_DESTRUCTOR(T)][Should evaluate to true T has a virtual destructor]] + + [[BOOST_IS_ABSTRACT(T)][Should evaluate to true if T is an abstract type]] + [[BOOST_IS_BASE_OF(T,U)][Should evaluate to true if T is a base class of U]] + [[BOOST_IS_CLASS(T)][Should evaluate to true if T is a class type]] + [[BOOST_IS_CONVERTIBLE(T,U)][Should evaluate to true if T is convertible to U]] + [[BOOST_IS_ENUM(T)][Should evaluate to true is T is an enum]] + [[BOOST_IS_POLYMORPHIC(T)][Should evaluate to true if T is a polymorphic type]] + [[BOOST_ALIGNMENT_OF(T)][Should evaluate to the alignment requirements of type T.]] + ] [endsect] diff --git a/test/alignment_of_test.cpp b/test/alignment_of_test.cpp index 4947e1f..85a4551 100644 --- a/test/alignment_of_test.cpp +++ b/test/alignment_of_test.cpp @@ -16,6 +16,37 @@ // VC++ emits an awful lot of warnings unless we define these: #ifdef BOOST_MSVC # pragma warning(disable:4244) +// +// What follows here is the test case for issue 1946. +// +#include +// This kind of packing is set within MSVC 9.0 headers. +// E.g. std::ostream has it. +#pragma pack(push,8) + +// The issue is gone if Root has no data members +struct Root { int a; }; +// The issue is gone if Root is inherited non-virtually +struct A : virtual public Root {}; + +#pragma pack(pop) +// +// This class has 8-byte alignment but is 44 bytes in size, which means +// that elements in an array of this type will not actually be 8 byte +// aligned. This appears to be an MSVC bug, and throws off our +// alignment calculations: causing us to report a non-sensical 12-byte +// alignment for this type. This is fixed by using the native __alignof +// operator. +// +class issue1946 : + public A +{ +public: + // The issue is gone if the type is not a boost::function. The signature doesn't matter. + typedef boost::function0< void > function_type; + function_type m_function; +}; + #endif @@ -63,6 +94,10 @@ BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of::value, ALIGNOF(POD_UD BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of::value, ALIGNOF(empty_UDT)); BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of::value, ALIGNOF(union_UDT)); +#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) +BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of::value, ALIGNOF(issue1946)); +#endif + TT_TEST_END diff --git a/test/type_with_alignment_test.cpp b/test/type_with_alignment_test.cpp index c8a9722..65a9232 100644 --- a/test/type_with_alignment_test.cpp +++ b/test/type_with_alignment_test.cpp @@ -35,6 +35,14 @@ void check_call(const T& v) #define TYPE_WITH_ALIGNMENT_TEST(T)\ {\ +std::cout << "\ntesting type " << typeid(T).name() << std::endl;\ +std::cout << "Alignment of T is " << ::tt::alignment_of< T >::value << std::endl;\ +std::cout << "Aligned type is " << typeid(::tt::type_with_alignment< ::tt::alignment_of< T >::value>::type).name() << std::endl;\ +std::cout << "Alignment of aligned type is " << ::tt::alignment_of<\ + ::tt::type_with_alignment<\ + ::tt::alignment_of< T >::value\ + >::type\ +>::value << std::endl;\ BOOST_CHECK(::tt::alignment_of<\ ::tt::type_with_alignment<\ ::tt::alignment_of< T >::value\ @@ -57,10 +65,6 @@ BOOST_CHECK(::tt::is_pod<\ TT_TEST_BEGIN(type_with_alignment) -BOOST_MESSAGE(typeid(::tt::type_with_alignment< - ::tt::alignment_of::value - >::type).name()); - TYPE_WITH_ALIGNMENT_TEST_EX(char) TYPE_WITH_ALIGNMENT_TEST_EX(short) TYPE_WITH_ALIGNMENT_TEST_EX(int)