diff --git a/doc/html/boost_typetraits/background.html b/doc/html/boost_typetraits/background.html index 6d49b8e..4beb97f 100644 --- a/doc/html/boost_typetraits/background.html +++ b/doc/html/boost_typetraits/background.html @@ -3,7 +3,7 @@
![]() |
-Home | +Home | Libraries | People | FAQ | @@ -24,7 +24,7 @@
The optimized copy example shows how type traits may be used to perform optimization @@ -388,14 +394,15 @@ code to compile that otherwise would not do so unless excessive partial specialization is used. This is possible by delegating partial specialization to the type traits classes. Our example for this form of usage is a pair that can hold - references [6]. + references [6].
First, let us examine the definition of std::pair
, omitting
the comparison operators, default constructor, and template copy constructor
for simplicity:
template <typename T1, typename T2> ++template <typename T1, typename T2> struct pair { typedef T1 first_type; @@ -411,12 +418,12 @@Now, this "pair" cannot hold references as it currently stands, because the constructor would require taking a reference to a reference, which is currently - illegal [7]. Let us consider what + illegal [7]. Let us consider what the constructor's parameters would have to be in order to allow "pair" to hold non-reference types, references, and constant references:
-Table 1.2. Required Constructor Argument Types
+Table 1.2. Required Constructor Argument Types
@@ -477,11 +484,11 @@ A little familiarity with the type traits classes allows us to construct a single mapping that allows us to determine the type of parameter from the type - of the contained class. The type traits classes provide a transformation add_reference, which + of the contained class. The type traits classes provide a transformation add_reference, which 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
@@ -567,7 +574,8 @@ that can contain non-reference types, reference types, and constant reference types: -
template <typename T1, typename T2> ++template <typename T1, typename T2> struct pair { typedef T1 first_type; @@ -576,8 +584,8 @@ T1 first; T2 second; -pair(boost::add_reference<const T1>::type nfirst, - boost::add_reference<const T2>::type nsecond) +pair(boost::add_reference<const T1>::type nfirst, + boost::add_reference<const T2>::type nsecond) :first(nfirst), second(nsecond) { } };@@ -598,8 +606,8 @@ easier to maintain and easier to understand.- - Conclusion + + Conclusion
We hope that in this article we have been able to give you some idea of what @@ -611,16 +619,16 @@ can be optimal as well as generic.
- - Acknowledgements + + Acknowledgements
The authors would like to thank Beman Dawes and Howard Hinnant for their helpful comments when preparing this article.
- - References + + References
- diff --git a/doc/html/boost_typetraits/category.html b/doc/html/boost_typetraits/category.html index cdf6353..fb652db 100644 --- a/doc/html/boost_typetraits/category.html +++ b/doc/html/boost_typetraits/category.html @@ -3,7 +3,7 @@
Type Traits by Category - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@
- Type Traits diff --git a/doc/html/boost_typetraits/category/alignment.html b/doc/html/boost_typetraits/category/alignment.html index 6d5ea02..e58ff17 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,23 +24,24 @@Some low level memory management routines need to synthesize a POD type with - specific alignment properties. The template
type_with_alignment
- finds the smallest type with a specified alignment, while templatealigned_storage
+ specific alignment properties. The templatetype_with_alignment
+ finds the smallest type with a specified alignment, while templatealigned_storage
creates a type with a specific size and alignment.Synopsis
-template <std::size_t Align> -struct type_with_alignment; ++template <std::size_t Align> +struct type_with_alignment; template <std::size_t Size, std::size_t Align> -struct aligned_storage; +struct aligned_storage;
diff --git a/doc/html/boost_typetraits/category/function.html b/doc/html/boost_typetraits/category/function.html index b32289e..52e18cd 100644 --- a/doc/html/boost_typetraits/category/function.html +++ b/doc/html/boost_typetraits/category/function.html @@ -3,7 +3,7 @@ Decomposing Function Types - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,20 +24,21 @@- The class template function_traits - extracts information from function types (see also is_function). + The class template function_traits + extracts information from function types (see also is_function). This traits class allows you to tell how many arguments a function takes, what those argument types are, and what the return type is.
Synopsis
-template <std::size_t Align> -struct function_traits; ++template <std::size_t Align> +struct function_traits;
diff --git a/doc/html/boost_typetraits/category/transform.html b/doc/html/boost_typetraits/category/transform.html index a91fa23..df430ca 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@@@ -36,63 +36,64 @@
Synopsis:
-template <class T> -struct add_const; ++template <class T> +struct add_const; template <class T> -struct add_cv; +struct add_cv; template <class T> -struct add_pointer; +struct add_pointer; template <class T> -struct add_reference; +struct add_reference; template <class T> -struct add_volatile; +struct add_volatile; template <class T> -struct decay; +struct decay; template <class T> -struct floating_point_promotion; +struct floating_point_promotion; template <class T> -struct integral_promotion; +struct integral_promotion; template <class T> -struct make_signed; +struct make_signed; template <class T> -struct make_unsigned; +struct make_unsigned; template <class T> -struct promote; +struct promote; template <class T> -struct remove_all_extents; +struct remove_all_extents; template <class T> -struct remove_const; +struct remove_const; template <class T> -struct remove_cv; +struct remove_cv; template <class T> -struct remove_extent; +struct remove_extent; template <class T> -struct remove_pointer; +struct remove_pointer; template <class T> -struct remove_reference; +struct remove_reference; template <class T> -struct remove_volatile; +struct remove_volatile;- - Broken + + Broken Compiler Workarounds:
@@ -116,7 +117,8 @@
The first part guarantees the successful compilation of something like this:
-BOOST_STATIC_ASSERT((is_same<char, remove_reference<char&>::type>::value)); ++BOOST_STATIC_ASSERT((is_same<char, remove_reference<char&>::type>::value)); BOOST_STATIC_ASSERT((is_same<char const, remove_reference<char const&>::type>::value)); BOOST_STATIC_ASSERT((is_same<char volatile, remove_reference<char volatile&>::type>::value)); BOOST_STATIC_ASSERT((is_same<char const volatile, remove_reference<char const volatile&>::type>::value)); @@ -131,7 +133,8 @@int
or other built-in type, but for their own types as well: -namespace myspace{ ++namespace myspace{ struct MyClass {}; } // declare this at global scope: diff --git a/doc/html/boost_typetraits/category/value_traits.html b/doc/html/boost_typetraits/category/value_traits.html index 9a9f27c..c2795f5 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@@@ -37,13 +37,13 @@
These traits are all value traits, which is to say the - traits classes all inherit from integral_constant, + traits classes all inherit from integral_constant, and are used to access some numerical property of a type. Often this is a simple true or false Boolean value, but in a few cases may be some other integer value (for example when dealing with type alignments, or array bounds: - see
alignment_of
, -rank
- andextent
). + seealignment_of
, +rank
+ andextent
).
diff --git a/doc/html/boost_typetraits/category/value_traits/primary.html b/doc/html/boost_typetraits/category/value_traits/primary.html index bd026c2..5799c9b 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@@@ -33,13 +33,13 @@ are compositions of one or more primary traits.
- For any given type, exactly one primary type trait will inherit from true_type, - and all the others will inherit from false_type, + For any given type, exactly one primary type trait will inherit from true_type, + and all the others will inherit from false_type, in other words these traits are mutually exclusive.
- This means that
is_integral<T>::value
- andis_floating_point<T>::value
+ This means thatis_integral<T>::value
+ andis_floating_point<T>::value
will only ever be true for built-in types; if you want to check for a user-defined class type that behaves "as if" it is an integral or floating point type, then use thestd::numeric_limits @@ -48,67 +48,69 @@
Synopsis:
-template <class T> -struct is_array<T>; ++template <class T> +struct is_array<T>; template <class T> -struct is_class<T>; +struct is_class<T>; template <class T> -struct is_complex<T>; +struct is_complex<T>; template <class T> -struct is_enum<T>; +struct is_enum<T>; template <class T> -struct is_floating_point<T>; +struct is_floating_point<T>; template <class T> -struct is_function<T>; +struct is_function<T>; template <class T> -struct is_integral<T>; +struct is_integral<T>; template <class T> -struct is_member_function_pointer<T>; +struct is_member_function_pointer<T>; template <class T> -struct is_member_object_pointer<T>; +struct is_member_object_pointer<T>; template <class T> -struct is_pointer<T>; +struct is_pointer<T>; template <class T> -struct is_reference<T>; +struct is_reference<T>; template <class T> -struct is_union<T>; +struct is_union<T>; template <class T> -struct is_void<T>; +struct is_void<T>;The following traits are made up of the union of one or more type categorizations. A type may belong to more than one of these categories, in addition to one of the primary categories.
-template <class T> -struct is_arithmetic; ++template <class T> +struct is_arithmetic; template <class T> -struct is_compound; +struct is_compound; template <class T> -struct is_fundamental; +struct is_fundamental; template <class T> -struct is_member_pointer; +struct is_member_pointer; template <class T> -struct is_object; +struct is_object; template <class T> -struct is_scalar; +struct is_scalar;
diff --git a/doc/html/boost_typetraits/category/value_traits/properties.html b/doc/html/boost_typetraits/category/value_traits/properties.html index bf034ae..b1a3a5d 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@@@ -33,77 +33,78 @@
Synopsis:
-template <class T> -struct alignment_of; ++template <class T> +struct alignment_of; template <class T> -struct has_nothrow_assign; +struct has_nothrow_assign; template <class T> -struct has_nothrow_constructor; +struct has_nothrow_constructor; template <class T> -struct has_nothrow_default_constructor; +struct has_nothrow_default_constructor; template <class T> -struct has_nothrow_copy; +struct has_nothrow_copy; template <class T> -struct has_nothrow_copy_constructor; +struct has_nothrow_copy_constructor; template <class T> -struct has_trivial_assign; +struct has_trivial_assign; template <class T> -struct has_trivial_constructor; +struct has_trivial_constructor; template <class T> -struct has_trivial_default_constructor; +struct has_trivial_default_constructor; template <class T> -struct has_trivial_copy; +struct has_trivial_copy; template <class T> -struct has_trivial_copy_constructor; +struct has_trivial_copy_constructor; template <class T> -struct has_trivial_destructor; +struct has_trivial_destructor; template <class T> -struct has_virtual_destructor; +struct has_virtual_destructor; template <class T> -struct is_abstract; +struct is_abstract; template <class T> -struct is_const; +struct is_const; template <class T> -struct is_empty; +struct is_empty; template <class T> -struct is_stateless; +struct is_stateless; template <class T> -struct is_pod; +struct is_pod; template <class T> -struct is_polymorphic; +struct is_polymorphic; template <class T> -struct is_signed; +struct is_signed; template <class T> -struct is_unsigned; +struct is_unsigned; template <class T> -struct is_volatile; +struct is_volatile; template <class T, std::size_t N = 0> -struct extent; +struct extent; template <class T> -struct rank; +struct rank;
diff --git a/doc/html/boost_typetraits/category/value_traits/relate.html b/doc/html/boost_typetraits/category/value_traits/relate.html index 938f763..09db8ea 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@@@ -34,14 +34,15 @@
Synopsis:
-template <class Base, class Derived> -struct is_base_of; ++template <class Base, class Derived> +struct is_base_of; template <class From, class To> -struct is_convertible; +struct is_convertible; template <class T, class U> -struct is_same; +struct is_same;
diff --git a/doc/html/boost_typetraits/credits.html b/doc/html/boost_typetraits/credits.html index 69085e0..5ba3552 100644 --- a/doc/html/boost_typetraits/credits.html +++ b/doc/html/boost_typetraits/credits.html @@ -3,7 +3,7 @@ Credits - + @@ -11,7 +11,7 @@
- Home +Home Libraries People FAQ @@ -23,11 +23,11 @@- This documentation was pulled together by John Maddock, using Boost.Quickbook - and Boost.DocBook. + This documentation was pulled together by John Maddock, using Boost.Quickbook + and Boost.DocBook.
The original version of this library was created by Steve Cleary, Beman Dawes, @@ -49,7 +49,7 @@ Aleksey Gurtovoy added MPL integration to the library.
- The is_convertible + The is_convertible template is based on code originally devised by Andrei Alexandrescu, see "Generic<Programming>: Mappings between Types and Values".
diff --git a/doc/html/boost_typetraits/examples.html b/doc/html/boost_typetraits/examples.html index afa695d..3003c46 100644 --- a/doc/html/boost_typetraits/examples.html +++ b/doc/html/boost_typetraits/examples.html @@ -3,7 +3,7 @@Examples - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@
- An Optimized Version diff --git a/doc/html/boost_typetraits/examples/copy.html b/doc/html/boost_typetraits/examples/copy.html index e7cc4d1..5de05ee 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,16 +24,17 @@diff --git a/doc/html/boost_typetraits/examples/destruct.html b/doc/html/boost_typetraits/examples/destruct.html index 4545f5e..1f26bb7 100644 --- a/doc/html/boost_typetraits/examples/destruct.html +++ b/doc/html/boost_typetraits/examples/destruct.html @@ -3,7 +3,7 @@Demonstrates a version of
-std::copy
- that useshas_trivial_assign
+ that useshas_trivial_assign
to determine whether to usememcpy
- to optimise the copy operation (see copy_example.cpp): + to optimise the copy operation (see copy_example.cpp):// +
+// // opt::copy // same semantics as std::copy // calls memcpy where appropriate. @@ -42,7 +43,7 @@ namespace detail{ template<typename I1, typename I2, bool b> -I2 copy_imp(I1 first, I1 last, I2 out, const boost::integral_constant<bool, b>&) +I2 copy_imp(I1 first, I1 last, I2 out, const boost::integral_constant<bool, b>&) { while(first != last) { @@ -54,7 +55,7 @@ } template<typename T> -T* copy_imp(const T* first, const T* last, T* out, const boost::true_type&) +T* copy_imp(const T* first, const T* last, T* out, const boost::true_type&) { memcpy(out, first, (last-first)*sizeof(T)); return out+(last-first); @@ -72,7 +73,7 @@ // requirement we detect with overload resolution): // typedef typename std::iterator_traits<I1>::value_type value_type; - return detail::copy_imp(first, last, out, boost::has_trivial_assign<value_type>()); + return detail::copy_imp(first, last, out, boost::has_trivial_assign<value_type>()); }An Example that Omits Destructor Calls For Types with Trivial Destructors - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,14 +24,15 @@diff --git a/doc/html/boost_typetraits/examples/fill.html b/doc/html/boost_typetraits/examples/fill.html index 9e75407..4ad227f 100644 --- a/doc/html/boost_typetraits/examples/fill.html +++ b/doc/html/boost_typetraits/examples/fill.html @@ -3,7 +3,7 @@Demonstrates a simple algorithm that uses
-__has_trivial_destruct
- to determine whether to destructors need to be called (see trivial_destructor_example.cpp): + to determine whether to destructors need to be called (see trivial_destructor_example.cpp):// +
+// // algorithm destroy_array: // The reverse of std::unitialized_copy, takes a block of // initialized memory and calls destructors on all objects therein. @@ -40,7 +41,7 @@ namespace detail{ template <class T> -void do_destroy_array(T* first, T* last, const boost::false_type&) +void do_destroy_array(T* first, T* last, const boost::false_type&) { while(first != last) { @@ -50,7 +51,7 @@ } template <class T> -inline void do_destroy_array(T* first, T* last, const boost::true_type&) +inline void do_destroy_array(T* first, T* last, const boost::true_type&) { } @@ -59,7 +60,7 @@ template <class T> inline void destroy_array(T* p1, T* p2) { - detail::do_destroy_array(p1, p2, ::boost::has_trivial_destructor<T>()); + detail::do_destroy_array(p1, p2, ::boost::has_trivial_destructor<T>()); }An Optimised Version of std::fill - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,23 +24,24 @@Demonstrates a version of
-std::fill
- that useshas_trivial_assign
+ that useshas_trivial_assign
to determine whether to usememset
- to optimise the fill operation (see fill_example.cpp): + to optimise the fill operation (see fill_example.cpp):// +diff --git a/doc/html/boost_typetraits/examples/iter.html b/doc/html/boost_typetraits/examples/iter.html index 3c8f937..ec04c97 100644 --- a/doc/html/boost_typetraits/examples/iter.html +++ b/doc/html/boost_typetraits/examples/iter.html @@ -3,7 +3,7 @@+// // fill // same as std::fill, but uses memset where appropriate // namespace detail{ template <typename I, typename T, bool b> -void do_fill(I first, I last, const T& val, const boost::integral_constant<bool, b>&) +void do_fill(I first, I last, const T& val, const boost::integral_constant<bool, b>&) { while(first != last) { @@ -50,7 +51,7 @@ } template <typename T> -void do_fill(T* first, T* last, const T& val, const boost::true_type&) +void do_fill(T* first, T* last, const T& val, const boost::true_type&) { std::memset(first, val, last-first); } @@ -64,8 +65,8 @@// We can do an optimised fill if T has a trivial assignment // operator and if it's size is one: // - typedef boost::integral_constant<bool, - ::boost::has_trivial_assign<T>::value && (sizeof(T) == 1)> truth_type; + typedef boost::integral_constant<bool, + ::boost::has_trivial_assign<T>::value && (sizeof(T) == 1)> truth_type; detail::do_fill(first, last, val, truth_type()); }An improved Version of std::iter_swap - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@@@ -34,9 +34,10 @@ of it's dereferenced arguments (the same as
-std::iter_swap
does), however if they are proxying iterators then takes special care over the swap to ensure that the algorithm works correctly for both proxying iterators, - and even iterators of different types (see iter_swap_example.cpp): + and even iterators of different types (see iter_swap_example.cpp):// ++// // iter_swap: // tests whether iterator is a proxying iterator or not, and // uses optimal form accordingly: @@ -44,7 +45,7 @@ namespace detail{ template <typename I> -static void do_swap(I one, I two, const boost::false_type&) +static void do_swap(I one, I two, const boost::false_type&) { typedef typename std::iterator_traits<I>::value_type v_t; v_t v = *one; @@ -52,7 +53,7 @@ *two = v; } template <typename I> -static void do_swap(I one, I two, const boost::true_type&) +static void do_swap(I one, I two, const boost::true_type&) { using std::swap; swap(*one, *two); @@ -70,10 +71,10 @@typedef typename std::iterator_traits<I1>::reference r1_t; typedef typename std::iterator_traits<I2>::reference r2_t; - typedef boost::integral_constant<bool, - ::boost::is_reference<r1_t>::value - && ::boost::is_reference<r2_t>::value - && ::boost::is_same<r1_t, r2_t>::value> truth_type; + typedef boost::integral_constant<bool, + ::boost::is_reference<r1_t>::value + && ::boost::is_reference<r2_t>::value + && ::boost::is_same<r1_t, r2_t>::value> truth_type; detail::do_swap(one, two, truth_type()); } diff --git a/doc/html/boost_typetraits/examples/to_double.html b/doc/html/boost_typetraits/examples/to_double.html index fa515ea..976d4a9 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,14 +24,15 @@- Demonstrates a conversion of Numeric + Demonstrates a conversion of Numeric Types and enum types to double:
-template<class T> ++template<class T> inline double to_double(T const& value) { typedef typename boost::promote<T>::type promoted; diff --git a/doc/html/boost_typetraits/intrinsics.html b/doc/html/boost_typetraits/intrinsics.html index 8a27fdc..2ac02bc 100644 --- a/doc/html/boost_typetraits/intrinsics.html +++ b/doc/html/boost_typetraits/intrinsics.html @@ -3,7 +3,7 @@Support for Compiler Intrinsics - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@There are some traits that can not be implemented within the current C++ language: @@ -38,16 +38,16 @@ for all types (but all have safe fallback positions if this support is unavailable):
-
- is_union
-- is_pod
-- has_trivial_constructor
-- has_trivial_copy
-- has_trivial_assign
-- has_trivial_destructor
-- has_nothrow_constructor
-- has_nothrow_copy
-- has_nothrow_assign
-- has_virtual_destructor
+- is_union
+- is_pod
+- has_trivial_constructor
+- has_trivial_copy
+- has_trivial_assign
+- has_trivial_destructor
+- has_nothrow_constructor
+- has_nothrow_copy
+- has_nothrow_assign
+- has_virtual_destructor
The following traits classes can't be portably implemented in the C++ language, @@ -55,23 +55,23 @@ all the compilers we know about:
The following traits classes are dependent on one or more of the above:
- The hooks for compiler-intrinsic support are defined in boost/type_traits/intrinsics.hpp, + The hooks for compiler-intrinsic support are defined in boost/type_traits/intrinsics.hpp, adding support for new compilers is simply a matter of defining one of more of the following macros:
-Table 1.4. Macros for Compiler Intrinsics
+Table 1.4. Macros for Compiler Intrinsics
diff --git a/doc/html/boost_typetraits/intro.html b/doc/html/boost_typetraits/intro.html index ba07a52..01a84d8 100644 --- a/doc/html/boost_typetraits/intro.html +++ b/doc/html/boost_typetraits/intro.html @@ -3,7 +3,7 @@ Introduction - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@The Boost type-traits library contains a set of very specific traits classes, @@ -34,8 +34,8 @@
The type-traits classes share a unified design: each class inherits from a - the type true_type - if the type has the specified property and inherits from false_type + the type true_type + if the type has the specified property and inherits from false_type otherwise.
diff --git a/doc/html/boost_typetraits/mpl.html b/doc/html/boost_typetraits/mpl.html index 063944a..8338fdd 100644 --- a/doc/html/boost_typetraits/mpl.html +++ b/doc/html/boost_typetraits/mpl.html @@ -3,7 +3,7 @@
MPL Interoperability - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,22 +24,22 @@diff --git a/doc/html/boost_typetraits/reference.html b/doc/html/boost_typetraits/reference.html index 9638957..26d6dfe 100644 --- a/doc/html/boost_typetraits/reference.html +++ b/doc/html/boost_typetraits/reference.html @@ -3,7 +3,7 @@All the value based traits in this library conform to MPL's requirements for - an Integral + an Integral Constant type: that includes a number of rather intrusive workarounds for broken compilers.
- Purely as an implementation detail, this means that
true_type
- inherits fromboost::mpl::true_
, -false_type
- inherits fromboost::mpl::false_
, - andintegral_constant<T, + Purely as an implementation detail, this means that
true_type
+ inherits fromboost::mpl::true_
, +false_type
+ inherits fromboost::mpl::false_
, + andintegral_constant<T, v>
- inherits fromboost::mpl::integral_c<T,v>
+ inherits fromboost::mpl::integral_c<T,v>
(providedT
is notbool
)Alphabetical Reference - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,7 +24,7 @@
- add_const
diff --git a/doc/html/boost_typetraits/reference/add_const.html b/doc/html/boost_typetraits/reference/add_const.html index dd4bcd4..033e2c0 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct add_const { typedefsee-below
type; @@ -44,7 +45,7 @@ does not support partial specialization of class-templates then this template will compile, but the membertype
will always be the same as typeT
- except where compiler + except where compiler workarounds have been applied.@@ -53,7 +54,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 8fe48aa..f1c5667 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct add_cv { typedefsee-below
type; @@ -45,7 +46,7 @@ does not support partial specialization of class-templates then this template will compile, but the membertype
will always be the same as typeT
- except where compiler + except where compiler workarounds have been applied.@@ -54,7 +55,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 c4e9c66..d17fb2b 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct add_pointer { typedefsee-below
type; @@ -47,7 +48,7 @@ does not support partial specialization of class-templates then this template will compile, but the membertype
will always be the same as typeT
- except where compiler + except where compiler workarounds have been applied.@@ -56,7 +57,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 b14b4e4..63f7027 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct add_reference { typedefsee-below
type; @@ -44,7 +45,7 @@ does not support partial specialization of class-templates then this template will compile, but the membertype
will always be the same as typeT
- except where compiler + except where compiler workarounds have been applied.@@ -53,7 +54,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 15e8d78..63f57b7 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct add_volatile { typedefsee-below
type; @@ -44,7 +45,7 @@ does not support partial specialization of class-templates then this template will compile, but the membertype
will always be the same as typeT
- except where compiler + except where compiler workarounds have been applied.@@ -53,7 +54,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 286cde6..4ad8c7c 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <std::size_t Size, std::size_t Align> ++template <std::size_t Size, std::size_t Align> struct aligned_storage { typedefsee-below
type; diff --git a/doc/html/boost_typetraits/reference/alignment_of.html b/doc/html/boost_typetraits/reference/alignment_of.html index 1b364b6..c79cca8 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,11 @@-template <class T> -struct alignment_of : public integral_constant<std::size_t, ALIGNOF(T)> {}; ++template <class T> +struct alignment_of : public integral_constant<std::size_t, ALIGNOF(T)> {};Inherits: Class template alignmentof inherits from `_integral_constant<std::size_t, @@ -52,7 +53,7 @@
alignment_of<int>
- inherits fromintegral_constant<std::size_t, ALIGNOF(int)>
. + inherits fromintegral_constant<std::size_t, ALIGNOF(int)>
.@@ -61,7 +62,7 @@
-
alignment_of<char>::type
is the typeintegral_constant<std::size_t, ALIGNOF(char)>
. +alignment_of<char>::type
is the typeintegral_constant<std::size_t, ALIGNOF(char)>
.diff --git a/doc/html/boost_typetraits/reference/decay.html b/doc/html/boost_typetraits/reference/decay.html index d59b743..149f124 100644 --- a/doc/html/boost_typetraits/reference/decay.html +++ b/doc/html/boost_typetraits/reference/decay.html @@ -3,7 +3,7 @@
decay - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct decay { typedefsee-below
type; @@ -48,7 +49,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 5680d42..310fb41 100644 --- a/doc/html/boost_typetraits/reference/extent.html +++ b/doc/html/boost_typetraits/reference/extent.html @@ -3,7 +3,7 @@ extent - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,21 +24,22 @@-template <class T, std::size_t N = 0> -struct extent : public integral_constant<std::size_t, EXTENT(T,N)> {}; ++template <class T, std::size_t N = 0> +struct extent : public integral_constant<std::size_t, EXTENT(T,N)> {};Inherits: Class template extent inherits - from
integral_constant<std::size_t, EXTENT(T,N)>
, + fromintegral_constant<std::size_t, EXTENT(T,N)>
, whereEXTENT(T,N)
is the number of elements in the N'th array dimention of typeT
.If
T
is not an array type, or ifN > - rank<T>::value
, or if the N'th array bound is incomplete, + rank<T>::value, or if the N'th array bound is incomplete, thenEXTENT(T,N)
is zero.@@ -53,7 +54,7 @@
-
extent<int[1]>
inherits fromintegral_constant<std::size_t, 1>
. +extent<int[1]>
inherits fromintegral_constant<std::size_t, 1>
.@@ -63,7 +64,7 @@
extent<double[2][3][4], - 1>::type
is the typeintegral_constant<std::size_t, 3>
. + 1>::type is the typeintegral_constant<std::size_t, 3>
.diff --git a/doc/html/boost_typetraits/reference/floating_point_promotion.html b/doc/html/boost_typetraits/reference/floating_point_promotion.html index 58dd94f..6637972 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,11 @@-template <class T> ++template <class T> struct floating_point_promotion { typedefsee-below
type; @@ -49,7 +50,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 d05e611..a343b6d 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct function_traits { static const std::size_t arity =see-below
; @@ -55,11 +56,11 @@function_traits is intended to introspect only C++ functions of the form R (), R( A1 ), R ( A1, ... etc. ) and not function pointers or class member - functions. To convert a function pointer type to a suitable type use remove_pointer. + functions. To convert a function pointer type to a suitable type use remove_pointer.
-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 5fc5eee..669d9d1 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,10 @@- See has_nothrow_constructor. + See has_nothrow_constructor.
diff --git a/doc/html/boost_typetraits/reference/has_nothrow_assign.html b/doc/html/boost_typetraits/reference/has_nothrow_assign.html index 838e62b..56de2ff 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct has_nothrow_assign : publictrue_type-or-false_type
{}; ++template <class T> +struct has_nothrow_assign : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a non-throwing assignment-operator then inherits from true_type, - otherwise inherits from false_type. + type with a non-throwing assignment-operator then inherits from true_type, + otherwise inherits from false_type. Type
diff --git a/doc/html/boost_typetraits/reference/has_nothrow_constructor.html b/doc/html/boost_typetraits/reference/has_nothrow_constructor.html index 7762bb1..26f3c17 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 @@T
must be a complete type.has_nothrow_constructor - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,19 +24,20 @@-template <class T> -struct has_nothrow_constructor : publictrue_type-or-false_type
{}; ++template <class T> +struct has_nothrow_constructor : publictrue_type-or-false_type
{}; template <class T> -struct has_nothrow_default_constructor : publictrue_type-or-false_type
{}; +struct has_nothrow_default_constructor : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a non-throwing default-constructor then inherits from true_type, - otherwise inherits from false_type. + type with a non-throwing default-constructor then inherits from true_type, + otherwise inherits from false_type. Type
@@ -52,7 +53,7 @@ Without some (as yet unspecified) help from the compiler,T
must be a complete type.has_nothrow_constructor
will never report that a class or struct has a non-throwing default-constructor; this is always safe, if possibly sub-optimal. Currently (May 2005) only Visual - C++ 8 has the necessary compiler intrinsics + C++ 8 has the necessary compiler intrinsics to ensure that this trait "just works".diff --git a/doc/html/boost_typetraits/reference/has_nothrow_copy.html b/doc/html/boost_typetraits/reference/has_nothrow_copy.html index 3e8046c..56a9b5f 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,18 +24,19 @@-template <class T> -struct has_nothrow_copy : publictrue_type-or-false_type
{}; ++template <class T> +struct has_nothrow_copy : publictrue_type-or-false_type
{}; template <class T> -struct has_nothrow_copy_constructor : publictrue_type-or-false_type
{}; +struct has_nothrow_copy_constructor : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a non-throwing copy-constructor then inherits from true_type, - otherwise inherits from false_type. + type with a non-throwing copy-constructor then inherits from true_type, + otherwise inherits from false_type. Type
@@ -51,7 +52,7 @@ Without some (as yet unspecified) help from the compiler,T
must be a complete type.has_nothrow_copy
will never report that a class or struct has a non-throwing copy-constructor; this is always safe, if possibly sub-optimal. Currently (May 2005) only Visual - C++ 8 has the necessary compiler intrinsics + C++ 8 has the necessary compiler intrinsics to ensure that this trait "just works".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 501c597..0625fed 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,10 @@- See has_nothrow_copy. + See has_nothrow_copy.
diff --git a/doc/html/boost_typetraits/reference/has_trivial_assign.html b/doc/html/boost_typetraits/reference/has_trivial_assign.html index 956cf55..49c9475 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct has_trivial_assign : publictrue_type-or-false_type
{}; ++template <class T> +struct has_trivial_assign : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a trivial assignment-operator then inherits from true_type, - otherwise inherits from false_type. + type with a trivial assignment-operator then inherits from true_type, + otherwise inherits from false_type.
If a type has a trivial assignment-operator then the operator has the same @@ -48,7 +49,7 @@ Without some (as yet unspecified) help from the compiler, has_trivial_assign will never report that a user-defined class or struct has a trivial constructor; this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW - 9 and Visual C++ 8 have the necessary compiler intrinsics + 9 and Visual C++ 8 have the necessary compiler intrinsics to detect user-defined classes with trivial constructors.
@@ -67,7 +68,7 @@
has_trivial_assign<int>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -76,7 +77,7 @@
-
has_trivial_assign<char*>::type
is the typetrue_type
. +has_trivial_assign<char*>::type
is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/has_trivial_constructor.html b/doc/html/boost_typetraits/reference/has_trivial_constructor.html index ac29da3..70ee93a 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,19 +24,20 @@-template <class T> -struct has_trivial_constructor : publictrue_type-or-false_type
{}; ++template <class T> +struct has_trivial_constructor : publictrue_type-or-false_type
{}; template <class T> -struct has_trivial_default_constructor : publictrue_type-or-false_type
{}; +struct has_trivial_default_constructor : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a trivial default-constructor then inherits from true_type, - otherwise inherits from false_type. + type with a trivial default-constructor then inherits from true_type, + otherwise inherits from false_type.
These two traits are synonyms for each other. @@ -57,7 +58,7 @@ Without some (as yet unspecified) help from the compiler, has_trivial_constructor will never report that a user-defined class or struct has a trivial constructor; this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW - 9 and Visual C++ 8 have the necessary compiler intrinsics + 9 and Visual C++ 8 have the necessary compiler intrinsics to detect user-defined classes with trivial constructors.
@@ -75,7 +76,7 @@
-
has_trivial_constructor<int>
inherits fromtrue_type
. +has_trivial_constructor<int>
inherits fromtrue_type
.@@ -85,7 +86,7 @@
has_trivial_constructor<char*>::type
- is the typetrue_type
. + is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/has_trivial_copy.html b/doc/html/boost_typetraits/reference/has_trivial_copy.html index f1fa15b..7247af4 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,18 +24,19 @@-template <class T> -struct has_trivial_copy : publictrue_type-or-false_type
{}; ++template <class T> +struct has_trivial_copy : publictrue_type-or-false_type
{}; template <class T> -struct has_trivial_copy_constructor : publictrue_type-or-false_type
{}; +struct has_trivial_copy_constructor : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a trivial copy-constructor then inherits from true_type, - otherwise inherits from false_type. + type with a trivial copy-constructor then inherits from true_type, + otherwise inherits from false_type.
These two traits are synonyms for each other. @@ -54,7 +55,7 @@ Without some (as yet unspecified) help from the compiler, has_trivial_copy will never report that a user-defined class or struct has a trivial constructor; this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW - 9 and Visual C++ 8 have the necessary compiler intrinsics + 9 and Visual C++ 8 have the necessary compiler intrinsics to detect user-defined classes with trivial constructors.
@@ -73,7 +74,7 @@
has_trivial_copy<int>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -82,7 +83,7 @@
-
has_trivial_copy<char*>::type
is the typetrue_type
. +has_trivial_copy<char*>::type
is the typetrue_type
.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 df8099e..f8e0387 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,10 @@- See has_trivial_copy. + See has_trivial_copy.
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 3704060..d7d7efc 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,10 @@- See has_trivial_constructor. + See has_trivial_constructor.
diff --git a/doc/html/boost_typetraits/reference/has_trivial_destructor.html b/doc/html/boost_typetraits/reference/has_trivial_destructor.html index cf77ae8..95994cb 100644 --- a/doc/html/boost_typetraits/reference/has_trivial_destructor.html +++ b/doc/html/boost_typetraits/reference/has_trivial_destructor.html @@ -3,7 +3,7 @@ has_trivial_destructor - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct has_trivial_destructor : publictrue_type-or-false_type
{}; ++template <class T> +struct has_trivial_destructor : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a trivial destructor then inherits from true_type, - otherwise inherits from false_type. + type with a trivial destructor then inherits from true_type, + otherwise inherits from false_type.
If a type has a trivial destructor then the destructor has no effect: calls @@ -50,7 +51,7 @@ Without some (as yet unspecified) help from the compiler, has_trivial_destructor will never report that a user-defined class or struct has a trivial destructor; this is always safe, if possibly sub-optimal. Currently (May 2005) only MWCW - 9 and Visual C++ 8 have the necessary compiler intrinsics + 9 and Visual C++ 8 have the necessary compiler intrinsics to detect user-defined classes with trivial constructors.
@@ -68,7 +69,7 @@
-
has_trivial_destructor<int>
inherits fromtrue_type
. +has_trivial_destructor<int>
inherits fromtrue_type
.@@ -78,7 +79,7 @@
has_trivial_destructor<char*>::type
- is the typetrue_type
. + is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/has_virtual_destructor.html b/doc/html/boost_typetraits/reference/has_virtual_destructor.html index 0509149..b7e3354 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,25 +24,26 @@-template <class T> -struct has_virtual_destructor : publictrue_type-or-false_type
{}; ++template <class T> +struct has_virtual_destructor : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - type with a virtual destructor then inherits from true_type, - otherwise inherits from false_type. + type with a virtual destructor then inherits from true_type, + otherwise inherits from false_type.
Compiler Compatibility: This trait is provided for completeness, since it's part of the Technical Report on C++ Library Extensions. However, there is currently no way to portably implement this - trait. The default version provided always inherits from false_type, + trait. The default version provided always inherits from false_type, and has to be explicitly specialized for types with virtual destructors unless - the compiler used has compiler intrinsics + the compiler used has compiler intrinsics that enable the trait to do the right thing: currently (May 2005) only Visual - C++ 8 has the necessary intrinsics. + C++ 8 has the necessary intrinsics.
C++ Standard Reference: 12.4. diff --git a/doc/html/boost_typetraits/reference/integral_constant.html b/doc/html/boost_typetraits/reference/integral_constant.html index 1a5cd28..3e86848 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T, T val> ++template <class T, T val> struct integral_constant { typedef integral_constant<T, val> type; diff --git a/doc/html/boost_typetraits/reference/integral_promotion.html b/doc/html/boost_typetraits/reference/integral_promotion.html index a02f240..396d1ca 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,9 +24,10 @@-template <class T> ++template <class T> struct integral_promotion { typedefsee-below
type; @@ -49,7 +50,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 bb9494a..af94bf0 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct is_abstract : publictrue_type-or-false_type
{}; ++template <class T> +struct is_abstract : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - abstract type then inherits from true_type, - otherwise inherits from false_type. + abstract type then inherits from true_type, + otherwise inherits from false_type.
C++ Standard Reference: 10.3. @@ -45,7 +46,7 @@
Compiler Compatibility: The compiler must support DR337 (as of April 2005: GCC 3.4, VC++ 7.1 (and later), Intel C++ - 7 (and later), and Comeau 4.3.2). Otherwise behaves the same as is_polymorphic; + 7 (and later), and Comeau 4.3.2). Otherwise behaves the same as is_polymorphic; this is the "safe fallback position" for which polymorphic types are always regarded as potentially abstract. The macro BOOST_NO_IS_ABSTRACT is used to signify that the implementation is buggy, users should check for @@ -69,7 +70,7 @@
is_abstract<abc>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -78,7 +79,7 @@
-
is_abstract<abc>::type
is the typetrue_type
. +is_abstract<abc>::type
is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_arithmetic.html b/doc/html/boost_typetraits/reference/is_arithmetic.html index 8e2b695..739c896 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,17 +24,18 @@-template <class T> -struct is_arithmetic : publictrue_type-or-false_type
{}; ++template <class T> +struct is_arithmetic : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - arithmetic type then inherits from true_type, - otherwise inherits from false_type. - Arithmetic types include integral and floating point types (see also is_integral and - is_floating_point). + arithmetic type then inherits from true_type, + otherwise inherits from false_type. + Arithmetic types include integral and floating point types (see also is_integral and + is_floating_point).
C++ Standard Reference: 3.9.1p8. @@ -52,7 +53,7 @@
is_arithmetic<int>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -61,7 +62,7 @@
-
is_arithmetic<char>::type
is the typetrue_type
. +is_arithmetic<char>::type
is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_array.html b/doc/html/boost_typetraits/reference/is_array.html index 8a1be84..714374a 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct is_array : publictrue_type-or-false_type
{}; ++template <class T> +struct is_array : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - array type then inherits from true_type, - otherwise inherits from false_type. + array type then inherits from true_type, + otherwise inherits from false_type.
C++ Standard Reference: 3.9.2 and 8.3.4. @@ -54,7 +55,7 @@
-
is_array<int[2]>
inherits fromtrue_type
. +is_array<int[2]>
inherits fromtrue_type
.@@ -64,7 +65,7 @@
is_array<char[2][3]>::type
- is the typetrue_type
. + is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_base_of.html b/doc/html/boost_typetraits/reference/is_base_of.html index fe814bf..3cd032c 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,21 +24,22 @@-- is_base_of + is_base_of
template <class Base, class Derived> -struct is_base_of : publictrue_type-or-false_type
{}; ++template <class Base, class Derived> +struct is_base_of : publictrue_type-or-false_type
{};Inherits: If Base is base class of type - Derived or if both types are the same then inherits from true_type, - otherwise inherits from false_type. + Derived or if both types are the same then inherits from true_type, + otherwise inherits from false_type.
This template will detect non-public base classes, and ambiguous base classes.
- Note that
is_base_of<X,X>
will always inherit from true_type. + Note thatis_base_of<X,X>
will always inherit from true_type. This is the case even ifX
is not a class type. This is a change in behaviour from Boost-1.33 in order to track the Technical Report on C++ Library Extensions. @@ -83,7 +84,7 @@
is_base_of<Base, Derived>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -92,7 +93,7 @@
-
is_base_of<Base, Derived>::type
is the typetrue_type
. +is_base_of<Base, Derived>::type
is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_class.html b/doc/html/boost_typetraits/reference/is_class.html index caddc27..1ff1a73 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct is_class : publictrue_type-or-false_type
{}; ++template <class T> +struct is_class : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - class type then inherits from true_type, - otherwise inherits from false_type. + class type then inherits from true_type, + otherwise inherits from false_type.
C++ Standard Reference: 3.9.2 and 9.2. @@ -45,9 +46,9 @@
Compiler Compatibility: Without (some as yet unspecified) help from the compiler, we cannot distinguish between union - and class types, as a result this type will erroneously inherit from true_type for - union types. See also is_union. - Currently (May 2005) only Visual C++ 8 has the necessary compiler intrinsics + and class types, as a result this type will erroneously inherit from true_type for + union types. See also is_union. + Currently (May 2005) only Visual C++ 8 has the necessary compiler intrinsics to correctly identify union types, and therefore make is_class function correctly.
@@ -67,7 +68,7 @@
is_class<MyClass>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -77,7 +78,7 @@
is_class<MyClass const>::type
- is the typetrue_type
. + is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_complex.html b/doc/html/boost_typetraits/reference/is_complex.html index 97338b4..ed12a67 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,10 +24,11 @@-- is_complex + is_complex
template <class T> -struct is_complex : publictrue_type-or-false_type
{}; ++template <class T> +struct is_complex : publictrue_type-or-false_type
{};Inherits: If
T
diff --git a/doc/html/boost_typetraits/reference/is_compound.html b/doc/html/boost_typetraits/reference/is_compound.html index 4c6569a..f3ea85e 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,16 +24,17 @@-template <class T> -struct is_compound : publictrue_type-or-false_type
{}; ++template <class T> +struct is_compound : publictrue_type-or-false_type
{};Inherits: If T is a (possibly cv-qualified) - compound type then inherits from true_type, - otherwise inherits from false_type. - Any type that is not a fundamental type is a compound type (see also is_fundamental). + compound type then inherits from true_type, + otherwise inherits from false_type. + Any type that is not a fundamental type is a compound type (see also is_fundamental).
C++ Standard Reference: 3.9.2. @@ -51,7 +52,7 @@
is_compound<MyClass>
- inherits fromtrue_type
. + inherits fromtrue_type
.@@ -60,7 +61,7 @@
-
is_compound<MyEnum>::type
is the typetrue_type
. +is_compound<MyEnum>::type
is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_const.html b/doc/html/boost_typetraits/reference/is_const.html index 79975cd..955046e 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,15 +24,16 @@-template <class T> -struct is_const : publictrue_type-or-false_type
{}; ++template <class T> +struct is_const : publictrue_type-or-false_type
{};Inherits: If T is a (top level) const-qualified - type then inherits from true_type, - otherwise inherits from false_type. + type then inherits from true_type, + otherwise inherits from false_type.
C++ Standard Reference: 3.9.3. @@ -49,7 +50,7 @@
-
is_const<int const>
inherits fromtrue_type
. +is_const<int const>
inherits fromtrue_type
.@@ -58,7 +59,7 @@
-
is_const<int const volatile>::type
is the typetrue_type
. +is_const<int const volatile>::type
is the typetrue_type
.diff --git a/doc/html/boost_typetraits/reference/is_convertible.html b/doc/html/boost_typetraits/reference/is_convertible.html index aae4b1a..8ec8162 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 - + @@ -12,7 +12,7 @@
- Home +Home Libraries People FAQ @@ -24,16 +24,17 @@-template <class From, class To> -struct is_convertible : publictrue_type-or-false_type
{}; ++template <class From, class To> +struct is_convertible : publictrue_type-or-false_type
{};Inherits: If an imaginary lvalue of type
From
is convertible to type -To
then inherits from true_type, - otherwise inherits from false_type. +To
then inherits from true_type, + otherwise inherits from false_type.Type From must not be an incomplete type. @@ -58,7 +59,8 @@ This template will also produce compiler errors if the conversion is ambiguous, for example:
-struct A {}; ++struct A {}; struct B : A {}; struct C : A {}; struct D : B, C {}; @@ -72,7 +74,7 @@ Compiler Compatibility: This template is currently broken with Borland C++ Builder 5 (and earlier), for constructor-based conversions, and for the Metrowerks 7 (and earlier) compiler in all cases. - If the compiler does not supportis_abstract
, + If the compiler does not supportis_abstract
, then the template parameterTo
must not be an abstract type. @@ -89,7 +91,7 @@