| 55 | |
| 56 | template<typename Type> |
| 57 | bool do_test(const Boxed_Value &bv, |
| 58 | bool T, bool ConstT, bool TRef, bool ConstTRef, bool TPtr, |
| 59 | bool ConstTPtr, bool TPtrConst, bool ConstTPtrConst, bool SharedPtrT, bool SharedConstPtrT, |
| 60 | bool SharedPtrTRef, bool ConstSharedPtrT, bool ConstSharedConstPtrT, bool ConstSharedPtrTRef, bool ConstSharedPtrTConstRef, |
| 61 | bool WrappedRef, bool WrappedConstRef, bool ConstWrappedRef, bool ConstWrappedConstRef, bool ConstWrappedRefRef, |
| 62 | bool ConstWrappedConstRefRef, bool Number, bool ConstNumber, bool ConstNumberRef, bool TPtrConstRef, |
| 63 | bool ConstTPtrConstRef) |
| 64 | { |
| 65 | bool passed = true; |
| 66 | passed &= test_type_conversion<Type>(bv, T); |
| 67 | passed &= test_type_conversion<const Type>(bv, ConstT); |
| 68 | passed &= test_type_conversion<Type &>(bv, TRef); |
| 69 | passed &= test_type_conversion<const Type &>(bv, ConstTRef); |
| 70 | passed &= test_type_conversion<Type *>(bv, TPtr); |
| 71 | passed &= test_type_conversion<const Type *>(bv, ConstTPtr); |
| 72 | passed &= test_type_conversion<Type * const>(bv, TPtrConst); |
| 73 | passed &= test_type_conversion<const Type * const>(bv, ConstTPtrConst); |
| 74 | passed &= test_type_conversion<std::shared_ptr<Type> >(bv, SharedPtrT); |
| 75 | passed &= test_type_conversion<std::shared_ptr<const Type> >(bv, SharedConstPtrT); |
| 76 | passed &= test_type_conversion<std::shared_ptr<Type> &>(bv, SharedPtrTRef); |
| 77 | //passed &= test_type_conversion<std::shared_ptr<const Type> &>(bv, false); |
| 78 | passed &= test_type_conversion<const std::shared_ptr<Type> >(bv, ConstSharedPtrT); |
| 79 | passed &= test_type_conversion<const std::shared_ptr<const Type> >(bv, ConstSharedConstPtrT); |
| 80 | passed &= test_type_conversion<const std::shared_ptr<Type> &>(bv, ConstSharedPtrTRef); |
| 81 | passed &= test_type_conversion<const std::shared_ptr<const Type> &>(bv, ConstSharedPtrTConstRef); |
| 82 | passed &= test_type_conversion<std::reference_wrapper<Type> >(bv, WrappedRef); |
| 83 | passed &= test_type_conversion<std::reference_wrapper<const Type> >(bv, WrappedConstRef); |
| 84 | passed &= test_type_conversion<std::reference_wrapper<Type> &>(bv, false); |
| 85 | passed &= test_type_conversion<std::reference_wrapper<const Type> &>(bv, false); |
| 86 | passed &= test_type_conversion<const std::reference_wrapper<Type> >(bv, ConstWrappedRef); |
| 87 | passed &= test_type_conversion<const std::reference_wrapper<const Type> >(bv, ConstWrappedConstRef); |
| 88 | passed &= test_type_conversion<const std::reference_wrapper<Type> &>(bv, ConstWrappedRefRef); |
| 89 | passed &= test_type_conversion<const std::reference_wrapper<const Type> &>(bv, ConstWrappedConstRefRef); |
| 90 | passed &= test_type_conversion<Boxed_Number>(bv, Number); |
| 91 | passed &= test_type_conversion<const Boxed_Number>(bv, ConstNumber); |
| 92 | passed &= test_type_conversion<Boxed_Number &>(bv, false); |
| 93 | passed &= test_type_conversion<const Boxed_Number &>(bv, ConstNumberRef); |
| 94 | passed &= test_type_conversion<Boxed_Number *>(bv, false); |
| 95 | passed &= test_type_conversion<const Boxed_Number *>(bv, false); |
| 96 | passed &= test_type_conversion<Boxed_Number * const>(bv, false); |
| 97 | passed &= test_type_conversion<const Boxed_Number *const>(bv, false); |
| 98 | passed &= test_type_conversion<Type *&>(bv, false); |
| 99 | passed &= test_type_conversion<const Type *&>(bv, false); |
| 100 | passed &= test_type_conversion<Type * const&>(bv, TPtrConstRef); |
| 101 | passed &= test_type_conversion<const Type * const&>(bv, ConstTPtrConstRef); |
| 102 | passed &= test_type_conversion<Boxed_Value>(bv, true); |
| 103 | passed &= test_type_conversion<const Boxed_Value>(bv, true); |
| 104 | passed &= test_type_conversion<const Boxed_Value &>(bv, true); |
| 105 | |
| 106 | return passed; |
| 107 | } |
| 108 | |
| 109 | /** Tests intended for built int types **/ |
| 110 | template<typename T> |
nothing calls this directly
no outgoing calls
no test coverage detected