~ubuntu-branches/ubuntu/breezy/aqsis/breezy

« back to all changes in this revision

Viewing changes to boost/boost/type_traits/is_object.hpp

  • Committer: Bazaar Package Importer
  • Author(s): Will Newton
  • Date: 2004-12-07 20:06:49 UTC
  • Revision ID: james.westby@ubuntu.com-20041207200649-fccswkrvp4oc8lmn
Tags: upstream-0.9.3
ImportĀ upstreamĀ versionĀ 0.9.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
 
3
// Permission to copy, use, modify, sell and distribute this software is 
 
4
// granted provided this copyright notice appears in all copies. This software 
 
5
// is provided "as is" without express or implied warranty, and with no claim 
 
6
// as to its suitability for any purpose.
 
7
//
 
8
// See http://www.boost.org for most recent version including documentation.
 
9
 
 
10
#ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED
 
11
#define BOOST_TT_IS_OBJECT_HPP_INCLUDED
 
12
 
 
13
#include "boost/type_traits/is_reference.hpp"
 
14
#include "boost/type_traits/is_void.hpp"
 
15
#include "boost/type_traits/is_function.hpp"
 
16
#include "boost/type_traits/detail/ice_and.hpp"
 
17
#include "boost/type_traits/detail/ice_not.hpp"
 
18
#include "boost/config.hpp"
 
19
 
 
20
// should be the last #include
 
21
#include "boost/type_traits/detail/bool_trait_def.hpp"
 
22
 
 
23
namespace boost {
 
24
 
 
25
namespace detail {
 
26
 
 
27
template <typename T>
 
28
struct is_object_impl
 
29
{
 
30
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 
31
   BOOST_STATIC_CONSTANT(bool, value =
 
32
      (::boost::type_traits::ice_and<
 
33
         ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
 
34
         ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value,
 
35
         ::boost::type_traits::ice_not< ::boost::is_function<T>::value>::value
 
36
      >::value));
 
37
#else
 
38
   BOOST_STATIC_CONSTANT(bool, value =
 
39
      (::boost::type_traits::ice_and<
 
40
         ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
 
41
         ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value
 
42
      >::value));
 
43
#endif
 
44
};
 
45
 
 
46
} // namespace detail
 
47
 
 
48
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_object,T,::boost::detail::is_object_impl<T>::value)
 
49
 
 
50
} // namespace boost
 
51
 
 
52
#include "boost/type_traits/detail/bool_trait_undef.hpp"
 
53
 
 
54
#endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED