reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
36 explicit StorageImpl(const T &Value) : Value(Value) {} 38 explicit StorageImpl(T &&Value) : Value(std::move(Value)) {} 41 return std::make_unique<StorageImpl<T>>(Value); 44 const void *id() const override { return &TypeId<T>::Id; } 46 T Value; 79 Any(T &&Value) { 80 using U = typename std::decay<T>::type; 81 Storage = std::make_unique<StorageImpl<U>>(std::forward<T>(Value)); 118 typename std::remove_cv<typename std::remove_reference<T>::type>::type; 122 template <class T> T any_cast(const Any &Value) { 128 template <class T> T any_cast(Any &Value) { 130 typename std::remove_cv<typename std::remove_reference<T>::type>::type; 134 template <class T> T any_cast(Any &&Value) { 136 typename std::remove_cv<typename std::remove_reference<T>::type>::type; 140 template <class T> const T *any_cast(const Any *Value) { 149 template <class T> T *any_cast(Any *Value) { 150 using U = typename std::decay<T>::type;unittests/ADT/AnyTest.cpp
132 TestType(const TestType &Other) 134 TestType(TestType &&Other) : Copies(Other.Copies), Moves(Other.Moves + 1) {} 140 TestType T1 = llvm::any_cast<TestType>(Any{TestType()}); 140 TestType T1 = llvm::any_cast<TestType>(Any{TestType()}); 146 TestType T2 = llvm::any_cast<TestType>(A); 146 TestType T2 = llvm::any_cast<TestType>(A); 151 TestType T3 = llvm::any_cast<TestType>(std::move(A)); 151 TestType T3 = llvm::any_cast<TestType>(std::move(A));usr/include/c++/7.4.0/bits/move.h
72 constexpr _Tp&& 73 forward(typename std::remove_reference<_Tp>::type& __t) noexcept 83 constexpr _Tp&& 84 forward(typename std::remove_reference<_Tp>::type&& __t) noexcept 98 move(_Tp&& __t) noexceptusr/include/c++/7.4.0/bits/unique_ptr.h
824 make_unique(_Args&&... __args) 825 { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }usr/include/c++/7.4.0/type_traits
215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type 326 : public __is_integral_helper<typename remove_cv<_Tp>::type>::type 354 : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type 381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type 567 : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type 581 : public __or_<is_lvalue_reference<_Tp>, 582 is_rvalue_reference<_Tp>>::type 588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type 588 : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type 601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>, 601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>, 602 is_void<_Tp>>>::type 611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>, 611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>, 611 : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>, 612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 612 is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type 631 : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type 638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type 638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type 777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>> 777 : public __and_<is_array<_Tp>, __not_<extent<_Tp>>> 798 typedef decltype(__test<_Tp>(0)) type; 811 remove_all_extents<_Tp>::type>::type 825 : public __is_destructible_safe<_Tp>::type 984 typedef decltype(__test<_Tp, _Arg>(0)) type; 989 : public __and_<is_destructible<_Tp>, 990 __is_direct_constructible_impl<_Tp, _Arg>> 1072 __is_direct_constructible_ref_cast<_Tp, _Arg>, 1073 __is_direct_constructible_new_safe<_Tp, _Arg> 1079 : public __is_direct_constructible_new<_Tp, _Arg>::type 1119 : public __is_direct_constructible<_Tp, _Arg> 1130 : public __is_constructible_impl<_Tp, _Args...>::type 1142 : public is_constructible<_Tp, const _Tp&> 1142 : public is_constructible<_Tp, const _Tp&> 1148 : public __is_copy_constructible_impl<_Tp> 1526 static void __test_aux(_To1); 1538 typedef decltype(__test<_From, _To>(0)) type; 1545 : public __is_convertible_helper<_From, _To>::type 1554 { typedef _Tp type; }; 1563 { typedef _Tp type; }; 1574 remove_const<typename remove_volatile<_Tp>::type>::type type; 1629 { typedef _Tp type; }; 1633 { typedef _Tp type; }; 1659 { typedef _Tp&& type; }; 1955 { typedef _Tp type; }; 2104 { typedef typename remove_cv<_Up>::type __type; }; 2118 typedef typename remove_reference<_Tp>::type __remove_type;