diff --git a/doc/credits.qbk b/doc/credits.qbk index f8aab31..2c6c2cd 100644 --- a/doc/credits.qbk +++ b/doc/credits.qbk @@ -8,8 +8,8 @@ [section:credits Credits] This documentation was pulled together by John Maddock, using -[@../../tools/quickbook/doc/html/index.html Boost.Quickbook] -and [@boostbook.html Boost.DocBook]. +[@../../../../tools/quickbook/doc/html/index.html Boost.Quickbook] +and [@../../../../doc/html/boostbook.html Boost.DocBook]. The original version of this library was created by Steve Cleary, Beman Dawes, Howard Hinnant, and John Maddock. John Maddock is the diff --git a/doc/examples.qbk b/doc/examples.qbk index 386571c..32729d9 100644 --- a/doc/examples.qbk +++ b/doc/examples.qbk @@ -11,7 +11,7 @@ Demonstrates a version of `std::copy` that uses `__has_trivial_assign` to determine whether to use `memcpy` to optimise the copy operation -(see [@../../libs/type_traits/examples/copy_example.cpp copy_example.cpp]): +(see [@../../examples/copy_example.cpp copy_example.cpp]): // // opt::copy @@ -62,7 +62,7 @@ determine whether to use `memcpy` to optimise the copy operation Demonstrates a version of `std::fill` that uses `__has_trivial_assign` to determine whether to use `memset` to optimise the fill operation -(see [@../../libs/type_traits/examples/fill_example.cpp fill_example.cpp]): +(see [@../../examples/fill_example.cpp fill_example.cpp]): // // fill @@ -107,7 +107,7 @@ determine whether to use `memset` to optimise the fill operation Demonstrates a simple algorithm that uses `__has_trivial_destruct` to determine whether to destructors need to be called -(see [@../../libs/type_traits/examples/trivial_destructor_example.cpp trivial_destructor_example.cpp]): +(see [@../../examples/trivial_destructor_example.cpp trivial_destructor_example.cpp]): // // algorithm destroy_array: @@ -153,7 +153,7 @@ 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 [@../../libs/type_traits/examples/iter_swap_example.cpp iter_swap_example.cpp]): +(see [@../../examples/iter_swap_example.cpp iter_swap_example.cpp]): // // iter_swap: @@ -203,7 +203,8 @@ different types [section:to_double Convert Numeric Types and Enums to double] Demonstrates a conversion of -[@../../libs/numeric/conversion/doc/definitions.html#numtypes Numeric Types] +[@../../../../libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html#boost_numericconversion.definitions.numeric_types +Numeric Types] and enum types to double: template 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 @@ Background and Tutorial - + @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@

The following is an updated version of the article "C++ Type traits" @@ -56,19 +56,19 @@ method available to them.

- - Type Traits + + Type Traits

Class char_traits is a classic example of a collection of type specific properties wrapped up in a single - class - what Nathan Myers termed a baggage class[1]. In the Boost type-traits library, - we[2] have written a set of very + class - what Nathan Myers termed a baggage class[1]. In the Boost type-traits library, + we[2] have written a set of very specific traits classes, each of which encapsulate a single trait from the C++ type system; for example, is a type a pointer or a reference type? Or does a type have a trivial constructor, or a const-qualifier? 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 + 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 otherwise. As we will show, these classes can be used in generic programming to determine the properties of a given type and introduce optimizations that are appropriate for that case. @@ -84,8 +84,8 @@ given.

- - Implementation + + Implementation

There are far too many separate classes contained in the type-traits library @@ -94,17 +94,18 @@ anyway, so here we will just give you a flavor for how some of the classes are implemented. Beginning with possibly the simplest class in the library, is_void<T> inherits - from true_type + from true_type only if T is void.

-
template <typename T> 
-struct is_void : public false_type{};
+
+template <typename T> 
+struct is_void : public false_type{};
 
 template <> 
-struct is_void<void> : public true_type{};
+struct is_void<void> : public true_type{};
 

- Here we define a primary version of the template class is_void, + Here we define a primary version of the template class is_void, and provide a full-specialization when T is void. While full specialization of a template class is an important technique, sometimes we need a solution @@ -115,11 +116,12 @@ a pointer, and a partial specialization to handle all the cases where T is a pointer:

-
template <typename T> 
-struct is_pointer : public false_type{};
+
+template <typename T> 
+struct is_pointer : public false_type{};
 
 template <typename T> 
-struct is_pointer<T*> : public true_type{};
+struct is_pointer<T*> : public true_type{};
 

The syntax for partial specialization is somewhat arcane and could easily occupy @@ -132,13 +134,15 @@ but as a rule of thumb if you can legally write two function overloads of the form:

-
void foo(T);
+
+void foo(T);
 void foo(U);
 

Then you can also write a partial specialization of the form:

-
template <typename T>
+
+template <typename T>
 class c{ /*details*/ };
 
 template <typename T>
@@ -154,18 +158,19 @@
       that is the same type as T but with any top-level array bounds removed; this
       is an example of a traits class that performs a transformation on a type:
     

-
template <typename T> 
-struct remove_extent
+
+template <typename T> 
+struct remove_extent
 { typedef T type; };
 
 template <typename T, std::size_t N> 
-struct remove_extent<T[N]>
+struct remove_extent<T[N]>
 { typedef T type; };
 

- The aim of remove_extent + The aim of remove_extent is this: imagine a generic algorithm that is passed an array type as a template - parameter, remove_extent + parameter, remove_extent provides a means of determining the underlying type of the array. For example remove_extent<int[4][5]>::type would evaluate to the type int[5]. This example also shows that the number of template parameters in a partial specialization does not have to match the @@ -174,14 +179,15 @@ in the default template.

- - Optimized copy + + Optimized copy

As an example of how the type traits classes can be used, consider the standard library algorithm copy:

-
template<typename Iter1, typename Iter2>
+
+template<typename Iter1, typename Iter2>
 Iter2 copy(Iter1 first, Iter1 last, Iter2 out);
 

@@ -208,7 +214,7 @@

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

If all these conditions are met then a type can be copied using memcpy rather than using a compiler generated - assignment operator. The type-traits library provides a class has_trivial_assign, + assignment operator. The type-traits library provides a class has_trivial_assign, such that has_trivial_assign<T>::value is true only if T has a trivial assignment operator. This class "just works" for scalar types, but has to be explicitly specialised for class/struct types that also happen to have a trivial - assignment operator. In other words if has_trivial_assign + assignment operator. In other words if has_trivial_assign gives the wrong answer, it will give the "safe" wrong answer - that trivial assignment is not allowable.

The code for an optimized version of copy that uses memcpy - where appropriate is given in the + where appropriate is given in the examples. The code begins by defining a template function do_copy that performs a "slow but safe" - copy. The last parameter passed to this function may be either a true_type - or a false_type. + copy. The last parameter passed to this function may be either a true_type + or a false_type. Following that there is an overload of docopy that uses `memcpy`: this time the iterators are required to actually be pointers to the same type, and the final parameter must be a `_true_type. Finally, the version @@ -247,15 +253,15 @@ otherwise it will call the "slow but safe version".

- - Was it worth it? + + Was it worth it?

It has often been repeated in these columns that "premature optimization - is the root of all evil" [4]. + is the root of all evil" [4]. So the question must be asked: was our optimization premature? To put this in perspective the timings for our version of copy compared a conventional - generic copy[5] are shown in table + generic copy[5] are shown in table 1.

@@ -280,7 +286,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)

Boost C++ LibrariesHomeHome Libraries People FAQ
@@ -379,8 +385,8 @@

- - Pair of References + + Pair of References

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
  1. 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 @@
- + @@ -24,7 +24,7 @@
Boost C++ LibrariesHomeHome 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 template aligned_storage + specific alignment properties. The template type_with_alignment + finds the smallest type with a specified alignment, while template aligned_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;
 
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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;
 
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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 @@
 
 
Boost C++ LibrariesHomeHome 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 - and extent). + see alignment_of, + rank + and extent).

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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 - and is_floating_point<T>::value + This means that is_integral<T>::value + and is_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 the std::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;
 
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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;
 
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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;
 
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,7 +24,7 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,16 +24,17 @@

Demonstrates a version of std::copy - that uses has_trivial_assign + that uses has_trivial_assign to determine whether to use memcpy - 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>());
 }
 
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 @@ An Example that Omits Destructor Calls For Types with Trivial Destructors - + @@ -12,7 +12,7 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,14 +24,15 @@

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>());
 }
 
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 @@ An Optimised Version of std::fill - + @@ -12,7 +12,7 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,23 +24,24 @@

Demonstrates a version of std::fill - that uses has_trivial_assign + that uses has_trivial_assign to determine whether to use memset - to optimise the fill operation (see fill_example.cpp): + to optimise the fill operation (see fill_example.cpp):

-
//
+
+//
 // 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());
 }
 
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 @@ An improved Version of std::iter_swap - + @@ -12,7 +12,7 @@
Boost C++ LibrariesHomeHome 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 @@
 
 
Boost C++ LibrariesHomeHome 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 @@
 
 
Boost C++ LibrariesHomeHome 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):

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

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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 @@

Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,22 +24,22 @@

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 from boost::mpl::true_, - false_type - inherits from boost::mpl::false_, - and integral_constant<T, + Purely as an implementation detail, this means that true_type + inherits from boost::mpl::true_, + false_type + inherits from boost::mpl::false_, + and integral_constant<T, v> - inherits from boost::mpl::integral_c<T,v> + inherits from boost::mpl::integral_c<T,v> (provided T is not bool)

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 @@ Alphabetical Reference - + @@ -12,7 +12,7 @@
Boost C++ LibrariesHomeHome 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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct add_const
 {
    typedef see-below type;
@@ -44,7 +45,7 @@
         does not support partial specialization of class-templates then this template
         will compile, but the member type
         will always be the same as type T
-        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

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct add_cv
 {
    typedef see-below type;
@@ -45,7 +46,7 @@
         does not support partial specialization of class-templates then this template
         will compile, but the member type
         will always be the same as type T
-        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

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct add_pointer
 {
    typedef see-below type;
@@ -47,7 +48,7 @@
         does not support partial specialization of class-templates then this template
         will compile, but the member type
         will always be the same as type T
-        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

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct add_reference
 {
    typedef see-below type;
@@ -44,7 +45,7 @@
         does not support partial specialization of class-templates then this template
         will compile, but the member type
         will always be the same as type T
-        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

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct add_volatile
 {
    typedef see-below type;
@@ -44,7 +45,7 @@
         does not support partial specialization of class-templates then this template
         will compile, but the member type
         will always be the same as type T
-        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

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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
 {
    typedef see-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 @@
 
 
Boost C++ LibrariesHomeHome 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 from integral_constant<std::size_t, ALIGNOF(int)>. + inherits from integral_constant<std::size_t, ALIGNOF(int)>.

@@ -61,7 +62,7 @@

- alignment_of<char>::type is the type integral_constant<std::size_t, ALIGNOF(char)>. + alignment_of<char>::type is the type integral_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct decay
 {
    typedef see-below type;
@@ -48,7 +49,7 @@
         or  #include <boost/type_traits.hpp>
       

-

Table 1.10. Examples

+

Table 1.10. Examples

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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)>, + from integral_constant<std::size_t, EXTENT(T,N)>, where EXTENT(T,N) is the number of elements in the N'th array dimention of type T.

If T is not an array type, or if N > - rank<T>::value, or if the N'th array bound is incomplete, + rank<T>::value, or if the N'th array bound is incomplete, then EXTENT(T,N) is zero.

@@ -53,7 +54,7 @@

- extent<int[1]> inherits from integral_constant<std::size_t, 1>. + extent<int[1]> inherits from integral_constant<std::size_t, 1>.

@@ -63,7 +64,7 @@

extent<double[2][3][4], - 1>::type is the type integral_constant<std::size_t, 3>. + 1>::type is the type integral_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,10 +24,11 @@
-
template <class T>
+
+template <class T>
 struct floating_point_promotion
 {
    typedef see-below type;
@@ -49,7 +50,7 @@
         or  #include <boost/type_traits.hpp>
       

-

Table 1.11. Examples

+

Table 1.11. Examples

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -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 @@
 
Boost C++ LibrariesHomeHome Libraries People FAQ

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.12. Function Traits Members

+

Table 1.12. Function Traits Members

@@ -122,7 +123,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 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 @@
- + @@ -24,10 +24,10 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct has_nothrow_assign : public true_type-or-false_type {};
+
+template <class T>
+struct has_nothrow_assign : public true_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 T must be a complete 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 @@ has_nothrow_constructor - + @@ -12,7 +12,7 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,19 +24,20 @@
-
template <class T>
-struct has_nothrow_constructor : public true_type-or-false_type {};
+
+template <class T>
+struct has_nothrow_constructor : public true_type-or-false_type {};
 
 template <class T>
-struct has_nothrow_default_constructor : public true_type-or-false_type {};
+struct has_nothrow_default_constructor : public true_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 T must be a complete type.

@@ -52,7 +53,7 @@ Without some (as yet unspecified) help from the compiler, 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 @@

Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,18 +24,19 @@
-
template <class T>
-struct has_nothrow_copy : public true_type-or-false_type {};
+
+template <class T>
+struct has_nothrow_copy : public true_type-or-false_type {};
 
 template <class T>
-struct has_nothrow_copy_constructor : public true_type-or-false_type {};
+struct has_nothrow_copy_constructor : public true_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 T must be a complete type.

@@ -51,7 +52,7 @@ Without some (as yet unspecified) help from the compiler, 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 @@

Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,10 +24,10 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct has_trivial_assign : public true_type-or-false_type {};
+
+template <class T>
+struct has_trivial_assign : public true_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 from true_type. + inherits from true_type.

@@ -76,7 +77,7 @@

- has_trivial_assign<char*>::type is the type true_type. + has_trivial_assign<char*>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,19 +24,20 @@
-
template <class T>
-struct has_trivial_constructor : public true_type-or-false_type {};
+
+template <class T>
+struct has_trivial_constructor : public true_type-or-false_type {};
 
 template <class T>
-struct has_trivial_default_constructor : public true_type-or-false_type {};
+struct has_trivial_default_constructor : public true_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 from true_type. + has_trivial_constructor<int> inherits from true_type.

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

has_trivial_constructor<char*>::type - is the type true_type. + is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,18 +24,19 @@
-
template <class T>
-struct has_trivial_copy : public true_type-or-false_type {};
+
+template <class T>
+struct has_trivial_copy : public true_type-or-false_type {};
 
 template <class T>
-struct has_trivial_copy_constructor : public true_type-or-false_type {};
+struct has_trivial_copy_constructor : public true_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 from true_type. + inherits from true_type.

@@ -82,7 +83,7 @@

- has_trivial_copy<char*>::type is the type true_type. + has_trivial_copy<char*>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,10 +24,10 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,10 +24,10 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct has_trivial_destructor : public true_type-or-false_type {};
+
+template <class T>
+struct has_trivial_destructor : public true_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 from true_type. + has_trivial_destructor<int> inherits from true_type.

@@ -78,7 +79,7 @@

has_trivial_destructor<char*>::type - is the type true_type. + is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,25 +24,26 @@
-
template <class T>
-struct has_virtual_destructor : public true_type-or-false_type {};
+
+template <class T>
+struct has_virtual_destructor : public true_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 @@

Boost C++ LibrariesHomeHome 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 @@
 
 
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,9 +24,10 @@
-
template <class T>
+
+template <class T>
 struct integral_promotion
 {
    typedef see-below type;
@@ -49,7 +50,7 @@
         or  #include <boost/type_traits.hpp>
       

-

Table 1.14. Examples

+

Table 1.14. Examples

Boost C++ LibrariesHomeHome Libraries People FAQ
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 @@
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct is_abstract : public true_type-or-false_type {};
+
+template <class T>
+struct is_abstract : public true_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 from true_type. + inherits from true_type.

@@ -78,7 +79,7 @@

- is_abstract<abc>::type is the type true_type. + is_abstract<abc>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,17 +24,18 @@
-
template <class T>
-struct is_arithmetic : public true_type-or-false_type {};
+
+template <class T>
+struct is_arithmetic : public true_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 from true_type. + inherits from true_type.

@@ -61,7 +62,7 @@

- is_arithmetic<char>::type is the type true_type. + is_arithmetic<char>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct is_array : public true_type-or-false_type {};
+
+template <class T>
+struct is_array : public true_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 from true_type. + is_array<int[2]> inherits from true_type.

@@ -64,7 +65,7 @@

is_array<char[2][3]>::type - is the type true_type. + is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,21 +24,22 @@
-
template <class Base, class Derived>
-struct is_base_of : public true_type-or-false_type {};
+
+template <class Base, class Derived>
+struct is_base_of : public true_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 that is_base_of<X,X> will always inherit from true_type. This is the case even if X 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 from true_type. + inherits from true_type.

@@ -92,7 +93,7 @@

- is_base_of<Base, Derived>::type is the type true_type. + is_base_of<Base, Derived>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct is_class : public true_type-or-false_type {};
+
+template <class T>
+struct is_class : public true_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 from true_type. + inherits from true_type.

@@ -77,7 +78,7 @@

is_class<MyClass const>::type - is the type true_type. + is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,10 +24,11 @@
-
template <class T>
-struct is_complex : public true_type-or-false_type {};
+
+template <class T>
+struct is_complex : public true_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 @@

Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,16 +24,17 @@
-
template <class T>
-struct is_compound : public true_type-or-false_type {};
+
+template <class T>
+struct is_compound : public true_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 from true_type. + inherits from true_type.

@@ -60,7 +61,7 @@

- is_compound<MyEnum>::type is the type true_type. + is_compound<MyEnum>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct is_const : public true_type-or-false_type {};
+
+template <class T>
+struct is_const : public true_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 from true_type. + is_const<int const> inherits from true_type.

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

- is_const<int const volatile>::type is the type true_type. + is_const<int const volatile>::type is the type true_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 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,16 +24,17 @@
-
template <class From, class To>
-struct is_convertible : public true_type-or-false_type {};
+
+template <class From, class To>
+struct is_convertible : public true_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 support is_abstract,
+        If the compiler does not support is_abstract,
         then the template parameter To
         must not be an abstract type.
       

@@ -89,7 +91,7 @@

is_convertible<int, double> - inherits from true_type. + inherits from true_type.

@@ -99,7 +101,7 @@

is_convertible<const int, double>::type - is the type true_type. + is the type true_type.

diff --git a/doc/html/boost_typetraits/reference/is_empty.html b/doc/html/boost_typetraits/reference/is_empty.html index 5016b46..8578511 100644 --- a/doc/html/boost_typetraits/reference/is_empty.html +++ b/doc/html/boost_typetraits/reference/is_empty.html @@ -3,7 +3,7 @@ is_empty - + @@ -12,7 +12,7 @@
Boost C++ LibrariesHomeHome Libraries People FAQ
- + @@ -24,15 +24,16 @@
-
template <class T>
-struct is_empty : public true_type-or-false_type {};
+
+template <class T>
+struct is_empty : public true_type-or-false_type {};
 

Inherits: If T is an empty class type then - inherits from true_type, - otherwise inherits from false_type. + inherits from true_type, + otherwise inherits from false_type.

C++ Standard Reference: 10p5. @@ -51,7 +52,7 @@ the compiler implementing zero sized empty base classes, or

  • - the compiler providing intrinsics + the compiler providing intrinsics to detect empty classes.
  • @@ -83,7 +84,7 @@

    is_empty<empty_class> - inherits from true_type. + inherits from true_type.

    @@ -93,7 +94,7 @@

    is_empty<empty_class const>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_enum.html b/doc/html/boost_typetraits/reference/is_enum.html index c7198f1..858f94e 100644 --- a/doc/html/boost_typetraits/reference/is_enum.html +++ b/doc/html/boost_typetraits/reference/is_enum.html @@ -3,7 +3,7 @@ is_enum - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_enum : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_enum : public true_type-or-false_type {};
     

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

    C++ Standard Reference: 3.9.2 and 7.2. @@ -44,7 +45,7 @@

    Compiler Compatibility: Requires a correctly - functioning is_convertible + functioning is_convertible template; this means that is_enum is currently broken under Borland C++ Builder 5, and for the Metrowerks compiler prior to version 8, other compilers should handle this template just fine. @@ -67,7 +68,7 @@

    is_enum<my_enum> - inherits from true_type. + inherits from true_type.

    @@ -77,7 +78,7 @@

    is_enum<my_enum const>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_floating_point.html b/doc/html/boost_typetraits/reference/is_floating_point.html index a3a8b89..48069e7 100644 --- a/doc/html/boost_typetraits/reference/is_floating_point.html +++ b/doc/html/boost_typetraits/reference/is_floating_point.html @@ -3,7 +3,7 @@ is_floating_point - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_floating_point : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_floating_point : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - floating point type then inherits from true_type, - otherwise inherits from false_type. + floating point type then inherits from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.1p8. @@ -50,7 +51,7 @@

    is_floating_point<float> - inherits from true_type. + inherits from true_type.

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

    - is_floating_point<double>::type is the type true_type. + is_floating_point<double>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_function.html b/doc/html/boost_typetraits/reference/is_function.html index 95c036c..0c2415a 100644 --- a/doc/html/boost_typetraits/reference/is_function.html +++ b/doc/html/boost_typetraits/reference/is_function.html @@ -3,7 +3,7 @@ is_function - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,19 +24,21 @@
    -
    template <class T>
    -struct is_function : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_function : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - function type then inherits from true_type, - otherwise inherits from false_type. + function type then inherits from true_type, + otherwise inherits from false_type. Note that this template does not detect pointers to functions, - or references to functions, these are detected by is_pointer and is_reference respectively: + or references to functions, these are detected by is_pointer and is_reference respectively:

    -
    typedef int f1();      // f1 is of function type.
    +
    +typedef int f1();      // f1 is of function type.
     typedef int (f2*)();   // f2 is a pointer to a function.
     typedef int (f3&)();   // f3 is a reference to a function.
     
    @@ -56,7 +58,7 @@

    is_function<int (void)> - inherits from true_type. + inherits from true_type.

    @@ -65,7 +67,7 @@

    - is_function<long (double, int)>::type is the type true_type. + is_function<long (double, int)>::type is the type true_type.

    @@ -161,11 +163,11 @@ If you want to detect whether some type is a pointer-to-function then use:

    - is_function<remove_pointer<T>::type>::value - && is_pointer<T>::value + is_function<remove_pointer<T>::type>::value + && is_pointer<T>::value

    - or for pointers to member functions you can just use is_member_function_pointer + or for pointers to member functions you can just use is_member_function_pointer directly.

    diff --git a/doc/html/boost_typetraits/reference/is_fundamental.html b/doc/html/boost_typetraits/reference/is_fundamental.html index ca29d1b..8798f8f 100644 --- a/doc/html/boost_typetraits/reference/is_fundamental.html +++ b/doc/html/boost_typetraits/reference/is_fundamental.html @@ -3,7 +3,7 @@ is_fundamental - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,19 +24,20 @@
    -
    template <class T>
    -struct is_fundamental : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_fundamental : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - fundamental type then inherits from true_type, - otherwise inherits from false_type. + fundamental type then inherits from true_type, + otherwise inherits from false_type. Fundamental types include integral, floating point and void types (see also - is_integral, - is_floating_point - and is_void) + is_integral, + is_floating_point + and is_void)

    C++ Standard Reference: 3.9.1. @@ -54,7 +55,7 @@

    is_fundamental<int)> - inherits from true_type. + inherits from true_type.

    @@ -64,7 +65,7 @@

    is_fundamental<double const>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_integral.html b/doc/html/boost_typetraits/reference/is_integral.html index ec8986f..f7b3970 100644 --- a/doc/html/boost_typetraits/reference/is_integral.html +++ b/doc/html/boost_typetraits/reference/is_integral.html @@ -3,7 +3,7 @@ is_integral - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_integral : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_integral : public true_type-or-false_type {};
     

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

    C++ Standard Reference: 3.9.1p7. @@ -50,7 +51,7 @@

    is_integral<int> - inherits from true_type. + inherits from true_type.

    @@ -60,7 +61,7 @@

    is_integral<const char>::type - is the type true_type. + is the type true_type.

    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 2d3ae1e..287d907 100644 --- a/doc/html/boost_typetraits/reference/is_member_function_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_function_pointer.html @@ -3,7 +3,7 @@ is_member_function_pointer - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,16 +24,17 @@
    -
    template <class T>
    -struct is_member_function_pointer : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_member_function_pointer : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - pointer to a member function then inherits from true_type, - otherwise inherits from false_type. + pointer to a member function then inherits from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.2 and 8.3.3. @@ -50,7 +51,7 @@

    - is_member_function_pointer<int (MyClass::*)(void)> inherits from true_type. + is_member_function_pointer<int (MyClass::*)(void)> inherits from true_type.

    @@ -60,7 +61,7 @@

    is_member_function_pointer<int (MyClass::*)(char)>::type - is the type true_type. + is the type true_type.

    @@ -82,8 +83,8 @@ is_member_function_pointer<int (MyClass::*)>::value is an integral constant expression that evaluates to false: the argument in this case is a pointer to a data member and not a member - function, see is_member_object_pointer - and is_member_pointer + function, see is_member_object_pointer + and is_member_pointer

    diff --git a/doc/html/boost_typetraits/reference/is_member_object_pointer.html b/doc/html/boost_typetraits/reference/is_member_object_pointer.html index 8a41d11..c95ff36 100644 --- a/doc/html/boost_typetraits/reference/is_member_object_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_object_pointer.html @@ -3,7 +3,7 @@ is_member_object_pointer - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,16 +24,17 @@
    -
    template <class T>
    -struct is_member_object_pointer : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_member_object_pointer : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - pointer to a member object (a data member) then inherits from true_type, - otherwise inherits from false_type. + pointer to a member object (a data member) then inherits from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.2 and 8.3.3. @@ -50,7 +51,7 @@

    - is_member_object_pointer<int (MyClass::*)> inherits from true_type. + is_member_object_pointer<int (MyClass::*)> inherits from true_type.

    @@ -60,7 +61,7 @@

    is_member_object_pointer<double (MyClass::*)>::type - is the type true_type. + is the type true_type.

    @@ -82,8 +83,8 @@ is_member_object_pointer<int (MyClass::*)(void)>::value is an integral constant expression that evaluates to false: the argument in this case is a pointer to a member function and not a - member object, see is_member_function_pointer - and is_member_pointer + member object, see is_member_function_pointer + and is_member_pointer

    diff --git a/doc/html/boost_typetraits/reference/is_member_pointer.html b/doc/html/boost_typetraits/reference/is_member_pointer.html index 91ce7dc..fb3a329 100644 --- a/doc/html/boost_typetraits/reference/is_member_pointer.html +++ b/doc/html/boost_typetraits/reference/is_member_pointer.html @@ -3,7 +3,7 @@ is_member_pointer - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,16 +24,17 @@
    -
    template <class T>
    -struct is_member_pointer : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_member_pointer : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) pointer to a member (either a function or a data member) then inherits from - true_type, - otherwise inherits from false_type. + true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.2 and 8.3.3. @@ -51,7 +52,7 @@

    is_member_pointer<int (MyClass::*)> - inherits from true_type. + inherits from true_type.

    @@ -60,7 +61,7 @@

    - is_member_pointer<int (MyClass::*)(char)>::type is the type true_type. + is_member_pointer<int (MyClass::*)(char)>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_object.html b/doc/html/boost_typetraits/reference/is_object.html index 1adf00b..1d047c4 100644 --- a/doc/html/boost_typetraits/reference/is_object.html +++ b/doc/html/boost_typetraits/reference/is_object.html @@ -3,7 +3,7 @@ is_object - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_object : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_object : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - object type then inherits from true_type, - otherwise inherits from false_type. + object type then inherits from true_type, + otherwise inherits from false_type. All types are object types except references, void, and function types.

    @@ -51,7 +52,7 @@

    is_object<int> - inherits from true_type. + inherits from true_type.

    @@ -60,7 +61,7 @@

    - is_object<int*>::type is the type true_type. + is_object<int*>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_pod.html b/doc/html/boost_typetraits/reference/is_pod.html index 1ed071a..7bb57d6 100644 --- a/doc/html/boost_typetraits/reference/is_pod.html +++ b/doc/html/boost_typetraits/reference/is_pod.html @@ -3,7 +3,7 @@ is_pod - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_pod : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_pod : public true_type-or-false_type {};
     

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

    POD stands for "Plain old data". Arithmetic types, and enumeration @@ -71,7 +72,7 @@

    is_pod<int> - inherits from true_type. + inherits from true_type.

    @@ -80,7 +81,7 @@

    - is_pod<char*>::type is the type true_type. + is_pod<char*>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_pointer.html b/doc/html/boost_typetraits/reference/is_pointer.html index 8958a5c..bfc5b0d 100644 --- a/doc/html/boost_typetraits/reference/is_pointer.html +++ b/doc/html/boost_typetraits/reference/is_pointer.html @@ -3,7 +3,7 @@ is_pointer - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,16 +24,17 @@
    -
    template <class T>
    -struct is_pointer : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_pointer : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) pointer type (includes function pointers, but excludes pointers to members) - then inherits from true_type, - otherwise inherits from false_type. + then inherits from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.2p2 and 8.3.1. @@ -51,7 +52,7 @@

    is_pointer<int*> - inherits from true_type. + inherits from true_type.

    @@ -60,7 +61,7 @@

    - is_pointer<char* const>::type is the type true_type. + is_pointer<char* const>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_polymorphic.html b/doc/html/boost_typetraits/reference/is_polymorphic.html index a5b4fbc..377e12f 100644 --- a/doc/html/boost_typetraits/reference/is_polymorphic.html +++ b/doc/html/boost_typetraits/reference/is_polymorphic.html @@ -3,7 +3,7 @@ is_polymorphic - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_polymorphic : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_polymorphic : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - polymorphic type then inherits from true_type, - otherwise inherits from false_type. + polymorphic type then inherits from true_type, + otherwise inherits from false_type. Type T must be a complete type.

    @@ -66,7 +67,7 @@

    is_polymorphic<poly> - inherits from true_type. + inherits from true_type.

    @@ -76,7 +77,7 @@

    is_polymorphic<poly const>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_reference.html b/doc/html/boost_typetraits/reference/is_reference.html index 32fe6fa..08d2f35 100644 --- a/doc/html/boost_typetraits/reference/is_reference.html +++ b/doc/html/boost_typetraits/reference/is_reference.html @@ -3,7 +3,7 @@ is_reference - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_reference : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_reference : public true_type-or-false_type {};
     

    Inherits: If T is a reference pointer type - then inherits from true_type, - otherwise inherits from false_type. + then inherits from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.2 and 8.3.2. @@ -56,7 +57,7 @@

    is_reference<int&> - inherits from true_type. + inherits from true_type.

    @@ -66,7 +67,7 @@

    is_reference<int const&>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_same.html b/doc/html/boost_typetraits/reference/is_same.html index 59452c6..e532d42 100644 --- a/doc/html/boost_typetraits/reference/is_same.html +++ b/doc/html/boost_typetraits/reference/is_same.html @@ -3,7 +3,7 @@ is_same - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T, class U>
    -struct is_same : public true_type-or-false_type {};
    +
    +template <class T, class U>
    +struct is_same : public true_type-or-false_type {};
     

    Inherits: If T and U are the same types - then inherits from true_type, - otherwise inherits from false_type. + then inherits from true_type, + otherwise inherits from false_type.

    Header: #include @@ -52,7 +53,7 @@

    is_same<int, int> - inherits from true_type. + inherits from true_type.

    @@ -61,7 +62,7 @@

    - is_same<int, int>::type is the type true_type. + is_same<int, int>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_scalar.html b/doc/html/boost_typetraits/reference/is_scalar.html index c895870..46cc185 100644 --- a/doc/html/boost_typetraits/reference/is_scalar.html +++ b/doc/html/boost_typetraits/reference/is_scalar.html @@ -3,7 +3,7 @@ is_scalar - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_scalar : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_scalar : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - scalar type then inherits from true_type, - otherwise inherits from false_type. + scalar type then inherits from true_type, + otherwise inherits from false_type. Scalar types include integral, floating point, enumeration, pointer, and pointer-to-member types.

    @@ -57,7 +58,7 @@

    is_scalar<int*> - inherits from true_type. + inherits from true_type.

    @@ -66,7 +67,7 @@

    - is_scalar<int>::type is the type true_type. + is_scalar<int>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_signed.html b/doc/html/boost_typetraits/reference/is_signed.html index d248dad..be4c5df 100644 --- a/doc/html/boost_typetraits/reference/is_signed.html +++ b/doc/html/boost_typetraits/reference/is_signed.html @@ -3,7 +3,7 @@ is_signed - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,16 +24,17 @@
    -
    template <class T>
    -struct is_signed : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_signed : public true_type-or-false_type {};
     

    Inherits: If T is an signed integer type or an enumerated type with an underlying signed integer type, then inherits - from true_type, - otherwise inherits from false_type. + from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.1, 7.2. @@ -51,7 +52,7 @@

    is_signed<int> - inherits from true_type. + inherits from true_type.

    @@ -60,7 +61,7 @@

    - is_signed<int const volatile>::type is the type true_type. + is_signed<int const volatile>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_stateless.html b/doc/html/boost_typetraits/reference/is_stateless.html index f4472d4..cb8dadd 100644 --- a/doc/html/boost_typetraits/reference/is_stateless.html +++ b/doc/html/boost_typetraits/reference/is_stateless.html @@ -3,7 +3,7 @@ is_stateless - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_stateless : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_stateless : public true_type-or-false_type {};
     

    Inherits: Ff T is a stateless type then - inherits from true_type, - otherwise from false_type. + inherits from true_type, + otherwise from false_type.

    Type T must be a complete type. @@ -40,10 +41,11 @@

    A stateless type is a type that has no storage and whose constructors and destructors are trivial. That means that is_stateless - only inherits from true_type + only inherits from true_type if the following expression is true:

    -
    ::boost::has_trivial_constructor<T>::value
    +
    +::boost::has_trivial_constructor<T>::value
     && ::boost::has_trivial_copy<T>::value
     && ::boost::has_trivial_destructor<T>::value
     && ::boost::is_class<T>::value
    @@ -66,7 +68,7 @@
             Without some (as yet unspecified) help from the compiler, is_stateless will
             never report that a class or struct is stateless; this is always safe, if
             possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have
    -        the necessary compiler intrinsics
    +        the necessary compiler intrinsics
             to make this template work automatically.
           

    diff --git a/doc/html/boost_typetraits/reference/is_union.html b/doc/html/boost_typetraits/reference/is_union.html index ea59e84..2efaaac 100644 --- a/doc/html/boost_typetraits/reference/is_union.html +++ b/doc/html/boost_typetraits/reference/is_union.html @@ -3,7 +3,7 @@ is_union - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_union : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_union : public true_type-or-false_type {};
     

    Inherits: If T is a (possibly cv-qualified) - union type then inherits from true_type, - otherwise inherits from false_type. + union type then inherits from true_type, + otherwise inherits from false_type. Currently requires some kind of compiler support, otherwise unions are identified as classes.

    @@ -43,11 +44,11 @@ Compiler Compatibility: Without (some as yet unspecified) help from the compiler, we cannot distinguish between union and class types using only standard C++, as a result this type will never - inherit from true_type, + inherit from true_type, unless the user explicitly specializes the template for their user-defined union types, or unless the compiler supplies some unspecified intrinsic that implements this functionality. Currently (May 2005) only Visual C++ 8 has - the necessary compiler intrinsics + the necessary compiler intrinsics to make this trait "just work" without user intervention.

    @@ -63,7 +64,7 @@

    is_union<void> - inherits from true_type. + inherits from true_type.

    @@ -73,7 +74,7 @@

    is_union<const void>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_unsigned.html b/doc/html/boost_typetraits/reference/is_unsigned.html index 59004b0..580243d 100644 --- a/doc/html/boost_typetraits/reference/is_unsigned.html +++ b/doc/html/boost_typetraits/reference/is_unsigned.html @@ -3,7 +3,7 @@ is_unsigned - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,16 +24,17 @@
    -
    template <class T>
    -struct is_unsigned : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_unsigned : public true_type-or-false_type {};
     

    Inherits: If T is an unsigned integer type or an enumerated type with an underlying unsigned integer type, then inherits - from true_type, - otherwise inherits from false_type. + from true_type, + otherwise inherits from false_type.

    C++ Standard Reference: 3.9.1, 7.2. @@ -50,7 +51,7 @@

    - is_unsigned<unsigned int> inherits from true_type. + is_unsigned<unsigned int> inherits from true_type.

    @@ -61,7 +62,7 @@

    is_unsigned<unsigned int const volatile>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_void.html b/doc/html/boost_typetraits/reference/is_void.html index 516e4f7..722f0f3 100644 --- a/doc/html/boost_typetraits/reference/is_void.html +++ b/doc/html/boost_typetraits/reference/is_void.html @@ -3,7 +3,7 @@ is_void - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_void : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_void : public true_type-or-false_type {};
     

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

    C++ Standard Reference: 3.9.1p9. @@ -50,7 +51,7 @@

    is_void<void> - inherits from true_type. + inherits from true_type.

    @@ -60,7 +61,7 @@

    is_void<const void>::type - is the type true_type. + is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/is_volatile.html b/doc/html/boost_typetraits/reference/is_volatile.html index d66ddbc..c75c8c0 100644 --- a/doc/html/boost_typetraits/reference/is_volatile.html +++ b/doc/html/boost_typetraits/reference/is_volatile.html @@ -3,7 +3,7 @@ is_volatile - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,15 +24,16 @@
    -
    template <class T>
    -struct is_volatile : public true_type-or-false_type {};
    +
    +template <class T>
    +struct is_volatile : public true_type-or-false_type {};
     

    Inherits: If T is a (top level) volatile-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_volatile<volatile int> inherits from true_type. + is_volatile<volatile int> inherits from true_type.

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

    is_volatile<const volatile - int>::type is the type true_type. + int>::type is the type true_type.

    diff --git a/doc/html/boost_typetraits/reference/make_signed.html b/doc/html/boost_typetraits/reference/make_signed.html index 1a7aecb..94f2f40 100644 --- a/doc/html/boost_typetraits/reference/make_signed.html +++ b/doc/html/boost_typetraits/reference/make_signed.html @@ -3,7 +3,7 @@ make_signed - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct make_signed
     {
        typedef see-below type;
    @@ -54,7 +55,7 @@
             or  #include <boost/type_traits.hpp>
           

    -

    Table 1.15. Examples

    +

    Table 1.15. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/make_unsigned.html b/doc/html/boost_typetraits/reference/make_unsigned.html index e1ce164..d09b5ad 100644 --- a/doc/html/boost_typetraits/reference/make_unsigned.html +++ b/doc/html/boost_typetraits/reference/make_unsigned.html @@ -3,7 +3,7 @@ make_unsigned - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct make_unsigned
     {
        typedef see-below type;
    @@ -54,7 +55,7 @@
             or  #include <boost/type_traits.hpp>
           

    -

    Table 1.16. Examples

    +

    Table 1.16. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/promote.html b/doc/html/boost_typetraits/reference/promote.html index 088369c..336d945 100644 --- a/doc/html/boost_typetraits/reference/promote.html +++ b/doc/html/boost_typetraits/reference/promote.html @@ -3,7 +3,7 @@ promote - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct promote
     {
        typedef see-below type;
    @@ -38,8 +39,8 @@
             then applies integral and floating point promotions to T
             and keeps cv-qualifiers of T,
             otherwise leaves T unchanged.
    -        See also integral_promotion
    -        and floating_point_promotion.
    +        See also integral_promotion
    +        and floating_point_promotion.
           

    C++ Standard Reference: 4.5 except 4.5/3 @@ -51,7 +52,7 @@ or #include <boost/type_traits.hpp>

    -

    Table 1.17. Examples

    +

    Table 1.17. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/rank.html b/doc/html/boost_typetraits/reference/rank.html index 11535db..35b8c76 100644 --- a/doc/html/boost_typetraits/reference/rank.html +++ b/doc/html/boost_typetraits/reference/rank.html @@ -3,7 +3,7 @@ rank - + @@ -12,7 +12,7 @@
    - + @@ -24,14 +24,15 @@
    -
    template <class T>
    -struct rank : public integral_constant<std::size_t, RANK(T)> {};
    +
    +template <class T>
    +struct rank : public integral_constant<std::size_t, RANK(T)> {};
     

    Inherits: Class template rank inherits from - integral_constant<std::size_t, RANK(T)>, + integral_constant<std::size_t, RANK(T)>, where RANK(T) is the number of array dimensions in type T.

    @@ -52,7 +53,7 @@

    rank<int[]> - inherits from integral_constant<std::size_t, 1>. + inherits from integral_constant<std::size_t, 1>.

    @@ -61,7 +62,7 @@

    - rank<double[2][3][4]>::type is the type integral_constant<std::size_t, 3>. + rank<double[2][3][4]>::type is the type integral_constant<std::size_t, 3>.

    diff --git a/doc/html/boost_typetraits/reference/remove_all_extents.html b/doc/html/boost_typetraits/reference/remove_all_extents.html index a77101e..1bfedda 100644 --- a/doc/html/boost_typetraits/reference/remove_all_extents.html +++ b/doc/html/boost_typetraits/reference/remove_all_extents.html @@ -3,7 +3,7 @@ remove_all_extents - + @@ -12,7 +12,7 @@
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_all_extents
     {
        typedef see-below type;
    @@ -45,7 +46,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.18. Examples

    +

    Table 1.18. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/remove_const.html b/doc/html/boost_typetraits/reference/remove_const.html index c42c2ca..32a7810 100644 --- a/doc/html/boost_typetraits/reference/remove_const.html +++ b/doc/html/boost_typetraits/reference/remove_const.html @@ -3,7 +3,7 @@ remove_const - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_const
     {
        typedef see-below type;
    @@ -44,7 +45,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.19. Examples

    +

    Table 1.19. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/remove_cv.html b/doc/html/boost_typetraits/reference/remove_cv.html index e7fc15e..02cfc60 100644 --- a/doc/html/boost_typetraits/reference/remove_cv.html +++ b/doc/html/boost_typetraits/reference/remove_cv.html @@ -3,7 +3,7 @@ remove_cv - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_cv
     {
        typedef see-below type;
    @@ -44,7 +45,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.20. Examples

    +

    Table 1.20. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/remove_extent.html b/doc/html/boost_typetraits/reference/remove_extent.html index 5a277db..63136c2 100644 --- a/doc/html/boost_typetraits/reference/remove_extent.html +++ b/doc/html/boost_typetraits/reference/remove_extent.html @@ -3,7 +3,7 @@ remove_extent - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_extent
     {
        typedef see-below type;
    @@ -45,7 +46,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.21. Examples

    +

    Table 1.21. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/remove_pointer.html b/doc/html/boost_typetraits/reference/remove_pointer.html index 3fd04e5..6086af8 100644 --- a/doc/html/boost_typetraits/reference/remove_pointer.html +++ b/doc/html/boost_typetraits/reference/remove_pointer.html @@ -3,7 +3,7 @@ remove_pointer - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_pointer
     {
        typedef see-below type;
    @@ -44,7 +45,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.22. Examples

    +

    Table 1.22. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/remove_reference.html b/doc/html/boost_typetraits/reference/remove_reference.html index c67ee77..0e4feba 100644 --- a/doc/html/boost_typetraits/reference/remove_reference.html +++ b/doc/html/boost_typetraits/reference/remove_reference.html @@ -3,7 +3,7 @@ remove_reference - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_reference
     {
        typedef see-below type;
    @@ -44,7 +45,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.23. Examples

    +

    Table 1.23. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/remove_volatile.html b/doc/html/boost_typetraits/reference/remove_volatile.html index 8c3bbdc..19ac843 100644 --- a/doc/html/boost_typetraits/reference/remove_volatile.html +++ b/doc/html/boost_typetraits/reference/remove_volatile.html @@ -3,7 +3,7 @@ remove_volatile - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <class T>
    +
    +template <class T>
     struct remove_volatile
     {
        typedef see-below type;
    @@ -44,7 +45,7 @@
             does not support partial specialization of class-templates then this template
             will compile, but the member type
             will always be the same as type T
    -        except where compiler
    +        except where compiler
             workarounds have been applied.
           

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

    -

    Table 1.24. Examples

    +

    Table 1.24. Examples

    Boost C++ LibrariesHomeHome Libraries People FAQ
    diff --git a/doc/html/boost_typetraits/reference/type_with_alignment.html b/doc/html/boost_typetraits/reference/type_with_alignment.html index 3c8b133..3e0068c 100644 --- a/doc/html/boost_typetraits/reference/type_with_alignment.html +++ b/doc/html/boost_typetraits/reference/type_with_alignment.html @@ -3,7 +3,7 @@ type_with_alignment - + @@ -12,7 +12,7 @@
    - + @@ -24,9 +24,10 @@
    -
    template <std::size_t Align>
    +
    +template <std::size_t Align>
     struct type_with_alignment
     {
        typedef see-below type;
    diff --git a/doc/html/boost_typetraits/user_defined.html b/doc/html/boost_typetraits/user_defined.html
    index 31ce7b1..6a03356 100644
    --- a/doc/html/boost_typetraits/user_defined.html
    +++ b/doc/html/boost_typetraits/user_defined.html
    @@ -3,7 +3,7 @@
     
     User Defined Specializations
     
    -
    +
     
     
     
    @@ -12,7 +12,7 @@
     
     
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -24,17 +24,18 @@

    Occationally the end user may need to provide their own specialization for one of the type traits - typically where intrinsic compiler support is required to implement a specific trait fully. These specializations should derive from - boost::true_type - or boost::false_type + boost::true_type + or boost::false_type as appropriate:

    -
    #include <boost/type_traits/is_pod.hpp>
    +
    +#include <boost/type_traits/is_pod.hpp>
     #include <boost/type_traits/is_class.hpp>
     #include <boost/type_traits/is_union.hpp>
     
    @@ -48,16 +49,16 @@
     namespace boost
     {
        template<>
    -   struct is_pod<my_pod> : public true_type{};
    +   struct is_pod<my_pod> : public true_type{};
           
        template<>
    -   struct is_pod<my_union> : public true_type{};
    +   struct is_pod<my_union> : public true_type{};
        
        template<>
    -   struct is_union<my_union> : public true_type{};
    +   struct is_union<my_union> : public true_type{};
        
        template<>
    -   struct is_class<my_union> : public false_type{};
    +   struct is_class<my_union> : public false_type{};
     }
     
    diff --git a/doc/html/index.html b/doc/html/index.html index 39b19c2..35dbeaa 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -3,14 +3,14 @@ Chapter 1. Boost.TypeTraits - +
    Boost C++ LibrariesHomeHome Libraries People FAQ
    - + @@ -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 12f20e1..d8a0734 100644 --- a/doc/intrinsics.qbk +++ b/doc/intrinsics.qbk @@ -41,7 +41,7 @@ The following traits classes are dependent on one or more of the above: * __is_stateless The hooks for compiler-intrinsic support are defined in -[@../../boost/type_traits/intrinsics.hpp boost/type_traits/intrinsics.hpp], adding support for new compilers is simply +[@../../../../boost/type_traits/intrinsics.hpp boost/type_traits/intrinsics.hpp], adding support for new compilers is simply a matter of defining one of more of the following macros: [table Macros for Compiler Intrinsics diff --git a/doc/mpl.qbk b/doc/mpl.qbk index a9255c8..cc023d6 100644 --- a/doc/mpl.qbk +++ b/doc/mpl.qbk @@ -8,13 +8,13 @@ [section:mpl MPL Interoperability] All the value based traits in this library conform to MPL's requirements -for an [@../../libs/mpl/doc/refmanual/integral-constant.html Integral Constant type]: that includes a number of rather intrusive +for an [@../../../../libs/mpl/doc/refmanual/integral-constant.html 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 from [@../../libs/mpl/doc/refmanual/bool.html `boost::mpl::true_`], `__false_type` inherits -from [@../../libs/mpl/doc/refmanual/bool.html `boost::mpl::false_`], and `__integral_constant` inherits from -[@../../libs/mpl/doc/refmanual/integral-c.html `boost::mpl::integral_c`] (provided `T` is not `bool`) +means that `__true_type` inherits from [@../../../../libs/mpl/doc/refmanual/bool.html `boost::mpl::true_`], `__false_type` inherits +from [@../../../../libs/mpl/doc/refmanual/bool.html `boost::mpl::false_`], and `__integral_constant` inherits from +[@../../../../libs/mpl/doc/refmanual/integral-c.html `boost::mpl::integral_c`] (provided `T` is not `bool`) [endsect]
    Boost C++ LibrariesHomeHome Libraries People FAQ