/
usr
/
include
/
boost
/
type_traits
/
/usr/include/boost/type_traits
mkdir
upload
Name
Size
Mode
Actions
detail/
-
0755
rm
add_const.hpp
1439
0644
edit
dl
rm
add_cv.hpp
1399
0644
edit
dl
rm
add_lvalue_reference.hpp
768
0644
edit
dl
rm
add_pointer.hpp
1505
0644
edit
dl
rm
add_reference.hpp
1709
0644
edit
dl
rm
add_rvalue_reference.hpp
2395
0644
edit
dl
rm
add_volatile.hpp
1424
0644
edit
dl
rm
aligned_storage.hpp
3350
0644
edit
dl
rm
alignment_of.hpp
3575
0644
edit
dl
rm
alignment_traits.hpp
573
0644
edit
dl
rm
arithmetic_traits.hpp
862
0644
edit
dl
rm
array_traits.hpp
569
0644
edit
dl
rm
broken_compiler_spec.hpp
724
0644
edit
dl
rm
common_type.hpp
4555
0644
edit
dl
rm
composite_traits.hpp
1001
0644
edit
dl
rm
conditional.hpp
843
0644
edit
dl
rm
config.hpp
708
0644
edit
dl
rm
conjunction.hpp
889
0644
edit
dl
rm
conversion_traits.hpp
658
0644
edit
dl
rm
copy_cv.hpp
1058
0644
edit
dl
rm
copy_cv_ref.hpp
790
0644
edit
dl
rm
copy_reference.hpp
1044
0644
edit
dl
rm
cv_traits.hpp
994
0644
edit
dl
rm
decay.hpp
1496
0644
edit
dl
rm
declval.hpp
1899
0644
edit
dl
rm
detected.hpp
569
0644
edit
dl
rm
detected_or.hpp
670
0644
edit
dl
rm
disjunction.hpp
891
0644
edit
dl
rm
enable_if.hpp
829
0644
edit
dl
rm
extent.hpp
3751
0644
edit
dl
rm
floating_point_promotion.hpp
1071
0644
edit
dl
rm
function_traits.hpp
4801
0644
edit
dl
rm
has_bit_and.hpp
1572
0644
edit
dl
rm
has_bit_and_assign.hpp
1841
0644
edit
dl
rm
has_bit_or.hpp
1569
0644
edit
dl
rm
has_bit_or_assign.hpp
1839
0644
edit
dl
rm
has_bit_xor.hpp
1571
0644
edit
dl
rm
has_bit_xor_assign.hpp
1842
0644
edit
dl
rm
has_complement.hpp
936
0644
edit
dl
rm
has_dereference.hpp
16135
0644
edit
dl
rm
has_divides.hpp
1156
0644
edit
dl
rm
has_divides_assign.hpp
1513
0644
edit
dl
rm
has_equal_to.hpp
1762
0644
edit
dl
rm
has_greater.hpp
1756
0644
edit
dl
rm
has_greater_equal.hpp
1775
0644
edit
dl
rm
has_left_shift.hpp
1581
0644
edit
dl
rm
has_left_shift_assign.hpp
1851
0644
edit
dl
rm
has_less.hpp
1750
0644
edit
dl
rm
has_less_equal.hpp
1769
0644
edit
dl
rm
has_logical_and.hpp
1212
0644
edit
dl
rm
has_logical_not.hpp
998
0644
edit
dl
rm
has_logical_or.hpp
1208
0644
edit
dl
rm
has_minus.hpp
6520
0644
edit
dl
rm
has_minus_assign.hpp
6809
0644
edit
dl
rm
has_modulus.hpp
1570
0644
edit
dl
rm
has_modulus_assign.hpp
1841
0644
edit
dl
rm
has_multiplies.hpp
1162
0644
edit
dl
rm
has_multiplies_assign.hpp
1521
0644
edit
dl
rm
has_negate.hpp
731
0644
edit
dl
rm
has_new_operator.hpp
5166
0644
edit
dl
rm
has_nothrow_assign.hpp
3766
0644
edit
dl
rm
has_nothrow_constructor.hpp
2633
0644
edit
dl
rm
has_nothrow_copy.hpp
3047
0644
edit
dl
rm
has_nothrow_destructor.hpp
2204
0644
edit
dl
rm
has_not_equal_to.hpp
1774
0644
edit
dl
rm
has_operator.hpp
2282
0644
edit
dl
rm
has_plus.hpp
1800
0644
edit
dl
rm
has_plus_assign.hpp
6891
0644
edit
dl
rm
has_post_decrement.hpp
1932
0644
edit
dl
rm
has_post_increment.hpp
1932
0644
edit
dl
rm
has_pre_decrement.hpp
1922
0644
edit
dl
rm
has_pre_increment.hpp
1923
0644
edit
dl
rm
has_right_shift.hpp
1584
0644
edit
dl
rm
has_right_shift_assign.hpp
1854
0644
edit
dl
rm
has_trivial_assign.hpp
2208
0644
edit
dl
rm
has_trivial_constructor.hpp
2233
0644
edit
dl
rm
has_trivial_copy.hpp
2417
0644
edit
dl
rm
has_trivial_destructor.hpp
1683
0644
edit
dl
rm
has_trivial_move_assign.hpp
2666
0644
edit
dl
rm
has_trivial_move_constructor.hpp
2939
0644
edit
dl
rm
has_unary_minus.hpp
746
0644
edit
dl
rm
has_unary_plus.hpp
690
0644
edit
dl
rm
has_virtual_destructor.hpp
901
0644
edit
dl
rm
ice.hpp
768
0644
edit
dl
rm
integral_constant.hpp
2546
0644
edit
dl
rm
integral_promotion.hpp
6268
0644
edit
dl
rm
intrinsics.hpp
22018
0644
edit
dl
rm
is_abstract.hpp
4501
0644
edit
dl
rm
is_arithmetic.hpp
778
0644
edit
dl
rm
is_array.hpp
1755
0644
edit
dl
rm
is_assignable.hpp
3925
0644
edit
dl
rm
is_base_and_derived.hpp
7997
0644
edit
dl
rm
is_base_of.hpp
1500
0644
edit
dl
rm
is_base_of_tr1.hpp
1486
0644
edit
dl
rm
is_bounded_array.hpp
912
0644
edit
dl
rm
is_class.hpp
3595
0644
edit
dl
rm
is_complete.hpp
2803
0644
edit
dl
rm
is_complex.hpp
952
0644
edit
dl
rm
is_compound.hpp
848
0644
edit
dl
rm
is_const.hpp
1630
0644
edit
dl
rm
is_constructible.hpp
4350
0644
edit
dl
rm
is_convertible.hpp
18672
0644
edit
dl
rm
is_copy_assignable.hpp
4904
0644
edit
dl
rm
is_copy_constructible.hpp
6813
0644
edit
dl
rm
is_default_constructible.hpp
4526
0644
edit
dl
rm
is_destructible.hpp
2572
0644
edit
dl
rm
is_detected.hpp
752
0644
edit
dl
rm
is_detected_convertible.hpp
815
0644
edit
dl
rm
is_detected_exact.hpp
796
0644
edit
dl
rm
is_empty.hpp
3004
0644
edit
dl
rm
is_enum.hpp
4996
0644
edit
dl
rm
is_final.hpp
868
0644
edit
dl
rm
is_float.hpp
789
0644
edit
dl
rm
is_floating_point.hpp
1374
0644
edit
dl
rm
is_function.hpp
808
0644
edit
dl
rm
is_fundamental.hpp
996
0644
edit
dl
rm
is_integral.hpp
3845
0644
edit
dl
rm
is_list_constructible.hpp
1746
0644
edit
dl
rm
is_lvalue_reference.hpp
2012
0644
edit
dl
rm
is_member_function_pointer.hpp
825
0644
edit
dl
rm
is_member_object_pointer.hpp
839
0644
edit
dl
rm
is_member_pointer.hpp
1969
0644
edit
dl
rm
is_noncopyable.hpp
1067
0644
edit
dl
rm
is_nothrow_move_assignable.hpp
3964
0644
edit
dl
rm
is_nothrow_move_constructible.hpp
4043
0644
edit
dl
rm
is_nothrow_swappable.hpp
2405
0644
edit
dl
rm
is_object.hpp
907
0644
edit
dl
rm
is_pod.hpp
1809
0644
edit
dl
rm
is_pointer.hpp
1901
0644
edit
dl
rm
is_polymorphic.hpp
3187
0644
edit
dl
rm
is_reference.hpp
938
0644
edit
dl
rm
is_rvalue_reference.hpp
981
0644
edit
dl
rm
is_same.hpp
1511
0644
edit
dl
rm
is_scalar.hpp
966
0644
edit
dl
rm
is_scoped_enum.hpp
640
0644
edit
dl
rm
is_signed.hpp
6652
0644
edit
dl
rm
is_stateless.hpp
1127
0644
edit
dl
rm
is_trivially_copyable.hpp
713
0644
edit
dl
rm
is_unbounded_array.hpp
843
0644
edit
dl
rm
is_union.hpp
1075
0644
edit
dl
rm
is_unscoped_enum.hpp
593
0644
edit
dl
rm
is_unsigned.hpp
6772
0644
edit
dl
rm
is_virtual_base_of.hpp
6146
0644
edit
dl
rm
is_void.hpp
890
0644
edit
dl
rm
is_volatile.hpp
1665
0644
edit
dl
rm
make_signed.hpp
4621
0644
edit
dl
rm
make_unsigned.hpp
4691
0644
edit
dl
rm
make_void.hpp
1052
0644
edit
dl
rm
negation.hpp
472
0644
edit
dl
rm
nonesuch.hpp
702
0644
edit
dl
rm
object_traits.hpp
1441
0644
edit
dl
rm
promote.hpp
755
0644
edit
dl
rm
rank.hpp
2585
0644
edit
dl
rm
reference_traits.hpp
590
0644
edit
dl
rm
remove_all_extents.hpp
1885
0644
edit
dl
rm
remove_bounds.hpp
802
0644
edit
dl
rm
remove_const.hpp
1359
0644
edit
dl
rm
remove_cv.hpp
1794
0644
edit
dl
rm
remove_cv_ref.hpp
859
0644
edit
dl
rm
remove_extent.hpp
1791
0644
edit
dl
rm
remove_pointer.hpp
2203
0644
edit
dl
rm
remove_reference.hpp
1783
0644
edit
dl
rm
remove_volatile.hpp
1398
0644
edit
dl
rm
same_traits.hpp
586
0644
edit
dl
rm
transform_traits.hpp
893
0644
edit
dl
rm
type_identity.hpp
636
0644
edit
dl
rm
type_with_alignment.hpp
10037
0644
edit
dl
rm
Edit:
/usr/include/boost/type_traits/has_minus.hpp
(6520B)
// (C) Copyright 2009-2011 Frederic Bron. // // Use, modification and distribution are subject to 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). // // See http://www.boost.org/libs/type_traits for most recent version including documentation. #ifndef BOOST_TT_HAS_MINUS_HPP_INCLUDED #define BOOST_TT_HAS_MINUS_HPP_INCLUDED #include <boost/config.hpp> #include <boost/type_traits/detail/config.hpp> // cannot include this header without getting warnings of the kind: // gcc: // warning: value computed is not used // warning: comparison between signed and unsigned integer expressions // msvc: // warning C4018: '<' : signed/unsigned mismatch // warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data // warning C4547: '*' : operator before comma has no effect; expected operator with side-effect // warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) // warning C4804: '<' : unsafe use of type 'bool' in operation // warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation // cannot find another implementation -> declared as system header to suppress these warnings. #if defined(__GNUC__) # pragma GCC system_header #elif defined(BOOST_MSVC) # pragma warning ( push ) # pragma warning ( disable : 4018 4244 4547 4800 4804 4805 4913 4133) # if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) # pragma warning ( disable : 6334) # endif #endif #if defined(BOOST_TT_HAS_ACCURATE_BINARY_OPERATOR_DETECTION) #include <boost/type_traits/integral_constant.hpp> #include <boost/type_traits/make_void.hpp> #include <boost/type_traits/is_convertible.hpp> #include <boost/type_traits/is_void.hpp> #include <boost/type_traits/add_reference.hpp> #include <boost/type_traits/remove_pointer.hpp> #include <boost/type_traits/remove_reference.hpp> #include <utility> namespace boost { namespace binary_op_detail { struct dont_care; template <class T, class U, class Ret, class = void> struct has_minus_ret_imp : public boost::false_type {}; template <class T, class U, class Ret> struct has_minus_ret_imp<T, U, Ret, typename boost::make_void<decltype(std::declval<typename add_reference<T>::type>() - std::declval<typename add_reference<U>::type>())>::type> : public boost::integral_constant<bool, ::boost::is_convertible<decltype(std::declval<typename add_reference<T>::type>() - std::declval<typename add_reference<U>::type>()), Ret>::value> {}; template <class T, class U, class = void > struct has_minus_void_imp : public boost::false_type {}; template <class T, class U> struct has_minus_void_imp<T, U, typename boost::make_void<decltype(std::declval<typename add_reference<T>::type>() - std::declval<typename add_reference<U>::type>())>::type> : public boost::integral_constant<bool, ::boost::is_void<decltype(std::declval<typename add_reference<T>::type>() - std::declval<typename add_reference<U>::type>())>::value> {}; template <class T, class U, class = void> struct has_minus_dc_imp : public boost::false_type {}; template <class T, class U> struct has_minus_dc_imp<T, U, typename boost::make_void<decltype(std::declval<typename add_reference<T>::type>() - std::declval<typename add_reference<U>::type>())>::type> : public boost::true_type {}; template <class T, class U, class Ret> struct has_minus_ret_filter : public boost::binary_op_detail::has_minus_ret_imp <T, U, Ret> {}; template <class T, class U> struct has_minus_ret_filter<T, U, void> : public boost::binary_op_detail::has_minus_void_imp <T, U> {}; template <class T, class U> struct has_minus_ret_filter<T, U, boost::binary_op_detail::dont_care> : public boost::binary_op_detail::has_minus_dc_imp <T, U> {}; template <class T, class U, class Ret, bool b> struct has_minus_void_ptr_filter : public boost::binary_op_detail::has_minus_ret_filter <T, U, Ret> {}; template <class T, class U, class Ret> struct has_minus_void_ptr_filter<T, U, Ret, true> : public boost::false_type {}; } template <class T, class U = T, class Ret = boost::binary_op_detail::dont_care> struct has_minus : public boost::binary_op_detail::has_minus_void_ptr_filter< T, U, Ret, boost::is_void<typename remove_pointer<typename remove_reference<T>::type>::type>::value || boost::is_void<typename remove_pointer<typename remove_reference<U>::type>::type>::value> {}; } #else #define BOOST_TT_TRAIT_NAME has_minus #define BOOST_TT_TRAIT_OP - #define BOOST_TT_FORBIDDEN_IF\ (\ /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\ (\ ::boost::is_pointer< Lhs_noref >::value && \ ::boost::is_fundamental< Rhs_nocv >::value && \ (! ::boost::is_integral< Rhs_noref >::value )\ ) || \ /* Lhs==void* and (Rhs==fundamental or Rhs==pointer) */\ (\ ::boost::is_pointer< Lhs_noref >::value && \ ::boost::is_void< Lhs_noptr >::value && \ ( \ ::boost::is_fundamental< Rhs_nocv >::value || \ ::boost::is_pointer< Rhs_noref >::value\ )\ ) || \ /* Rhs==void* and (Lhs==fundamental or Lhs==pointer) */\ (\ ::boost::is_pointer< Rhs_noref >::value && \ ::boost::is_void< Rhs_noptr >::value && \ (\ ::boost::is_fundamental< Lhs_nocv >::value || \ ::boost::is_pointer< Lhs_noref >::value\ )\ ) ||\ /* Lhs=fundamental and Rhs=pointer */\ (\ ::boost::is_fundamental< Lhs_nocv >::value && \ ::boost::is_pointer< Rhs_noref >::value\ ) ||\ /* two different pointers */\ (\ ::boost::is_pointer< Lhs_noref >::value && \ ::boost::is_pointer< Rhs_noref >::value && \ (! ::boost::is_same< Lhs_nocv, Rhs_nocv >::value )\ )\ ) #define BOOST_TT_FORBIDDEN_IF_NEW (boost::is_void<typename remove_pointer<typename boost::remove_reference<T>::type>::type>::value || boost::is_void<typename remove_pointer<typename boost::remove_reference<U>::type>::type>::value) #include <boost/type_traits/detail/has_binary_operator.hpp> #undef BOOST_TT_TRAIT_NAME #undef BOOST_TT_TRAIT_OP #undef BOOST_TT_FORBIDDEN_IF #endif #if defined(BOOST_MSVC) # pragma warning (pop) #endif #endif
Save
cmd:
run