blob: 59aec510a3288751da90314037bdedb819b0406d [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001// (C) Copyright 2009-2011 Frederic Bron.
2//
3// Use, modification and distribution are subject to the Boost Software License,
4// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5// http://www.boost.org/LICENSE_1_0.txt).
6//
7// See http://www.boost.org/libs/type_traits for most recent version including documentation.
8
9#ifndef BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
10#define BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
11
12#define BOOST_TT_TRAIT_NAME has_left_shift_assign
13#define BOOST_TT_TRAIT_OP <<=
14#define BOOST_TT_FORBIDDEN_IF\
15 ::ndnboost::type_traits::ice_or<\
16 /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
17 ::ndnboost::type_traits::ice_and<\
18 ::ndnboost::is_fundamental< Lhs_nocv >::value,\
19 ::ndnboost::is_fundamental< Rhs_nocv >::value,\
20 ::ndnboost::type_traits::ice_or<\
21 ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
22 ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
23 >::value\
24 >::value,\
25 /* Lhs==fundamental and Rhs==pointer */\
26 ::ndnboost::type_traits::ice_and<\
27 ::ndnboost::is_fundamental< Lhs_nocv >::value,\
28 ::ndnboost::is_pointer< Rhs_noref >::value\
29 >::value,\
30 /* Rhs==fundamental and Lhs==pointer */\
31 ::ndnboost::type_traits::ice_and<\
32 ::ndnboost::is_fundamental< Rhs_nocv >::value,\
33 ::ndnboost::is_pointer< Lhs_noref >::value\
34 >::value,\
35 /* Lhs==pointer and Rhs==pointer */\
36 ::ndnboost::type_traits::ice_and<\
37 ::ndnboost::is_pointer< Lhs_noref >::value,\
38 ::ndnboost::is_pointer< Rhs_noref >::value\
39 >::value,\
40 /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
41 ::ndnboost::type_traits::ice_and<\
42 ::ndnboost::is_fundamental< Lhs_nocv >::value,\
43 ::ndnboost::is_fundamental< Rhs_nocv >::value,\
44 ::ndnboost::is_const< Lhs_noref >::value\
45 >::value\
46 >::value
47
48
49#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
50
51#undef BOOST_TT_TRAIT_NAME
52#undef BOOST_TT_TRAIT_OP
53#undef BOOST_TT_FORBIDDEN_IF
54
55#endif