blob: cb0636b628d3cfdf8c1c825b5e51762049d7a64a [file] [log] [blame]
[/
Copyright 2007 John Maddock.
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt).
]
[section:user_defined User Defined Specializations]
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
as appropriate:
#include <boost/type_traits/is_pod.hpp>
#include <boost/type_traits/is_class.hpp>
#include <boost/type_traits/is_union.hpp>
struct my_pod{};
struct my_union
{
char c;
int i;
};
namespace boost
{
template<>
struct __is_pod<my_pod> : public __true_type{};
template<>
struct __is_pod<my_union> : public __true_type{};
template<>
struct __is_union<my_union> : public __true_type{};
template<>
struct __is_class<my_union> : public __false_type{};
}
[endsect]