|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h 349 class SymbolVal : public NonLoc {
379 class ConcreteInt : public NonLoc {
410 class LocAsInteger : public NonLoc {
457 class CompoundVal : public NonLoc {
486 class LazyCompoundVal : public NonLoc {
524 class PointerToMember : public NonLoc {
References
include/llvm/ADT/Optional.h 144 T value;
160 explicit OptionalStorage(in_place_t, Args &&... args)
161 : value(std::forward<Args>(args)...), hasVal(true) {}
172 T &getValue() LLVM_LVALUE_FUNCTION noexcept {
176 T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
181 T &&getValue() && noexcept {
216 optional_detail::OptionalStorage<T> Storage;
219 using value_type = T;
224 Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
227 Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
230 Optional &operator=(T &&y) {
241 static inline Optional create(const T *y) {
245 Optional &operator=(const T &y) {
253 const T *getPointer() const { return &Storage.getValue(); }
254 T *getPointer() { return &Storage.getValue(); }
255 const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
256 T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
260 const T *operator->() const { return getPointer(); }
261 T *operator->() { return getPointer(); }
262 const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
263 T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
266 constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
271 T &&getValue() && { return std::move(Storage.getValue()); }
272 T &&operator*() && { return std::move(Storage.getValue()); }
275 T getValueOr(U &&value) && {
include/llvm/Support/type_traits.h 91 T t;
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
122 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
130 static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
145 std::is_copy_constructible<detail::trivial_helper<T>>::value;
147 !std::is_copy_constructible<T>::value;
151 std::is_move_constructible<detail::trivial_helper<T>>::value;
153 !std::is_move_constructible<T>::value;
157 is_copy_assignable<detail::trivial_helper<T>>::value;
159 !is_copy_assignable<T>::value;
163 is_move_assignable<detail::trivial_helper<T>>::value;
165 !is_move_assignable<T>::value;
169 std::is_destructible<detail::trivial_helper<T>>::value;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h 121 NonLoc Value,
127 NonLoc Value,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 560 return X.isValid() ? svalBuilder.evalMinus(X.castAs<NonLoc>()) : X;
564 return X.isValid() ? svalBuilder.evalComplement(X.castAs<NonLoc>()) : X;
585 NonLoc L, NonLoc R, QualType T) {
585 NonLoc L, NonLoc R, QualType T) {
590 NonLoc L, SVal R, QualType T) {
592 R.castAs<NonLoc>(), T) : R;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h 1087 NonLoc Index;
1089 ElementRegion(QualType elementType, NonLoc Idx, const SubRegion *sReg)
1103 NonLoc getIndex() const { return Index; }
1333 const ElementRegion *getElementRegion(QualType elementType, NonLoc Idx,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h 685 this, Val.castAs<NonLoc>(), From, To, Assumption);
698 this, Val.castAs<NonLoc>(), From, To);
752 if (Optional<NonLoc> N = Idx.getAs<NonLoc>())
752 if (Optional<NonLoc> N = Idx.getAs<NonLoc>())
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h 75 virtual SVal evalCastFromNonLoc(NonLoc val, QualType castTy) = 0;
111 virtual SVal evalMinus(NonLoc val) = 0;
113 virtual SVal evalComplement(NonLoc val) = 0;
118 NonLoc lhs, NonLoc rhs, QualType resultTy) = 0;
118 NonLoc lhs, NonLoc rhs, QualType resultTy) = 0;
129 Loc lhs, NonLoc rhs, QualType resultTy) = 0;
142 NonLoc lhs, NonLoc rhs, QualType resultTy);
142 NonLoc lhs, NonLoc rhs, QualType resultTy);
250 NonLoc makeCompoundVal(QualType type, llvm::ImmutableList<SVal> vals) {
254 NonLoc makeLazyCompoundVal(const StoreRef &store,
260 NonLoc makePointerToMember(const DeclaratorDecl *DD) {
264 NonLoc makePointerToMember(const PointerToMemberData *PTMD) {
268 NonLoc makeZeroArrayIndex() {
272 NonLoc makeArrayIndex(uint64_t idx) {
298 NonLoc makeIntVal(const llvm::APInt& integer, bool isUnsigned) {
309 NonLoc makeIntVal(uint64_t integer, bool isUnsigned) {
313 NonLoc makeIntValWithPtrWidth(uint64_t integer, bool isUnsigned) {
318 NonLoc makeLocAsInteger(Loc loc, unsigned bits) {
322 NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
325 NonLoc makeNonLoc(const llvm::APSInt& rhs, BinaryOperator::Opcode op,
328 NonLoc makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
332 NonLoc makeNonLoc(const SymExpr *operand, QualType fromTy, QualType toTy);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h 103 T castAs() const {
111 Optional<T> getAs() const {
112 if (!T::isKind(*this))
349 class SymbolVal : public NonLoc {
373 static bool isKind(const NonLoc& V) {
379 class ConcreteInt : public NonLoc {
405 static bool isKind(const NonLoc& V) {
410 class LocAsInteger : public NonLoc {
452 static bool isKind(const NonLoc& V) {
457 class CompoundVal : public NonLoc {
481 static bool isKind(const NonLoc& V) {
486 class LazyCompoundVal : public NonLoc {
510 static bool isKind(const NonLoc& V) {
524 class PointerToMember : public NonLoc {
561 static bool isKind(const NonLoc& V) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h 42 ProgramStateRef assumeInclusiveRange(ProgramStateRef State, NonLoc Value,
82 ProgramStateRef assume(ProgramStateRef State, NonLoc Cond, bool Assumption);
84 ProgramStateRef assumeAux(ProgramStateRef State, NonLoc Cond,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h 149 virtual SVal getLValueElement(QualType elementType, NonLoc offset, SVal Base);
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp 58 NonLoc getByteOffset() const { return byteOffset.castAs<NonLoc>(); }
58 NonLoc getByteOffset() const { return byteOffset.castAs<NonLoc>(); }
83 static std::pair<NonLoc, nonloc::ConcreteInt>
84 getSimplifiedOffsets(NonLoc offset, nonloc::ConcreteInt extent,
137 NonLoc rawOffsetVal = rawOffset.getByteOffset();
145 if (Optional<NonLoc> NV = extentBegin.getAs<NonLoc>()) {
145 if (Optional<NonLoc> NV = extentBegin.getAs<NonLoc>()) {
147 std::pair<NonLoc, nonloc::ConcreteInt> simplifiedOffsets =
158 Optional<NonLoc> lowerBoundToCheck = lowerBound.getAs<NonLoc>();
158 Optional<NonLoc> lowerBoundToCheck = lowerBound.getAs<NonLoc>();
182 if (!extentVal.getAs<NonLoc>())
186 std::pair<NonLoc, nonloc::ConcreteInt> simplifiedOffsets =
195 extentVal.castAs<NonLoc>(),
198 Optional<NonLoc> upperboundToCheck = upperbound.getAs<NonLoc>();
198 Optional<NonLoc> upperboundToCheck = upperbound.getAs<NonLoc>();
284 NonLoc baseVal, CharUnits scaling,
300 return svalBuilder.evalBinOpNN(state, BO_Add, x.castAs<NonLoc>(),
301 y.castAs<NonLoc>(),
327 if (!index.getAs<NonLoc>())
339 index.castAs<NonLoc>(),
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp 247 NonLoc left,
248 NonLoc right) const;
403 Optional<NonLoc> Length = LengthVal.getAs<NonLoc>();
403 Optional<NonLoc> Length = LengthVal.getAs<NonLoc>();
408 NonLoc One = svalBuilder.makeIntVal(1, sizeTy).castAs<NonLoc>();
408 NonLoc One = svalBuilder.makeIntVal(1, sizeTy).castAs<NonLoc>();
412 NonLoc LastOffset = Offset.castAs<NonLoc>();
412 NonLoc LastOffset = Offset.castAs<NonLoc>();
520 Optional<NonLoc> Length = LengthVal.getAs<NonLoc>();
520 Optional<NonLoc> Length = LengthVal.getAs<NonLoc>();
660 NonLoc left,
661 NonLoc right) const {
675 NonLoc maxVal = svalBuilder.makeIntVal(maxValInt);
689 if (Optional<NonLoc> maxMinusRightNL = maxMinusRight.getAs<NonLoc>()) {
689 if (Optional<NonLoc> maxMinusRightNL = maxMinusRight.getAs<NonLoc>()) {
774 if (Optional<NonLoc> strLn = strLength.getAs<NonLoc>()) {
774 if (Optional<NonLoc> strLn = strLength.getAs<NonLoc>()) {
781 NonLoc maxLength = svalBuilder.makeIntVal(*maxLengthInt);
904 Optional<NonLoc> Length = LengthVal.getAs<NonLoc>();
904 Optional<NonLoc> Length = LengthVal.getAs<NonLoc>();
909 NonLoc One = svalBuilder.makeIntVal(1, sizeTy).castAs<NonLoc>();
909 NonLoc One = svalBuilder.makeIntVal(1, sizeTy).castAs<NonLoc>();
913 NonLoc LastOffset = Offset.castAs<NonLoc>();
913 NonLoc LastOffset = Offset.castAs<NonLoc>();
1062 Optional<NonLoc> SizeNL = SizeVal.getAs<NonLoc>();
1062 Optional<NonLoc> SizeNL = SizeVal.getAs<NonLoc>();
1416 Optional<NonLoc> strLengthNL = strLength.getAs<NonLoc>();
1416 Optional<NonLoc> strLengthNL = strLength.getAs<NonLoc>();
1417 Optional<NonLoc> maxlenValNL = maxlenVal.getAs<NonLoc>();
1417 Optional<NonLoc> maxlenValNL = maxlenVal.getAs<NonLoc>();
1444 NonLoc resultNL = result.castAs<NonLoc>();
1444 NonLoc resultNL = result.castAs<NonLoc>();
1593 Optional<NonLoc> strLengthNL = strLength.getAs<NonLoc>();
1593 Optional<NonLoc> strLengthNL = strLength.getAs<NonLoc>();
1594 Optional<NonLoc> lenValNL = lenVal.getAs<NonLoc>();
1594 Optional<NonLoc> lenValNL = lenVal.getAs<NonLoc>();
1633 if (Optional<NonLoc> dstStrLengthNL = dstStrLength.getAs<NonLoc>()) {
1633 if (Optional<NonLoc> dstStrLengthNL = dstStrLength.getAs<NonLoc>()) {
1668 NonLoc one = svalBuilder.makeIntVal(1, sizeTy).castAs<NonLoc>();
1668 NonLoc one = svalBuilder.makeIntVal(1, sizeTy).castAs<NonLoc>();
1686 if (Optional<NonLoc> amountCopiedNL = amountCopied.getAs<NonLoc>()) {
1686 if (Optional<NonLoc> amountCopiedNL = amountCopied.getAs<NonLoc>()) {
1736 Optional<NonLoc> srcStrLengthNL = amountCopied.getAs<NonLoc>();
1736 Optional<NonLoc> srcStrLengthNL = amountCopied.getAs<NonLoc>();
1737 Optional<NonLoc> dstStrLengthNL = dstStrLength.getAs<NonLoc>();
1737 Optional<NonLoc> dstStrLengthNL = dstStrLength.getAs<NonLoc>();
1758 if (Optional<NonLoc> finalStrLengthNL = finalStrLength.getAs<NonLoc>()) {
1758 if (Optional<NonLoc> finalStrLengthNL = finalStrLength.getAs<NonLoc>()) {
1812 if (Optional<NonLoc> maxLastNL = maxLastElementIndex.getAs<NonLoc>()) {
1812 if (Optional<NonLoc> maxLastNL = maxLastElementIndex.getAs<NonLoc>()) {
1823 if (Optional<NonLoc> knownStrLength = finalStrLength.getAs<NonLoc>()) {
1823 if (Optional<NonLoc> knownStrLength = finalStrLength.getAs<NonLoc>()) {
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp 354 bool isZero(ProgramStateRef State, const NonLoc &Val);
1043 if (isZero(State, Value.castAs<NonLoc>()))
1637 bool compare(ProgramStateRef State, NonLoc NL1, NonLoc NL2,
1637 bool compare(ProgramStateRef State, NonLoc NL1, NonLoc NL2,
2283 bool isZero(ProgramStateRef State, const NonLoc &Val) {
2355 bool compare(ProgramStateRef State, NonLoc NL1, NonLoc NL2,
2355 bool compare(ProgramStateRef State, NonLoc NL1, NonLoc NL2,
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp 169 const NonLoc Idx = Ctx.getSValBuilder().makeArrayIndex(i);
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 1014 if (!V.getAs<NonLoc>()) {
1020 NonLoc Flags = V.castAs<NonLoc>();
1020 NonLoc Flags = V.castAs<NonLoc>();
1021 NonLoc ZeroFlag = C.getSValBuilder()
1023 .castAs<NonLoc>();
1404 if (ElementCount.getAs<NonLoc>()) {
1408 State, BO_Mul, ElementCount.castAs<NonLoc>(),
tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp 249 if (auto N = V.getAs<NonLoc>()) {
280 if (auto N = V.getAs<NonLoc>()) {
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp 232 if (!V.getAs<NonLoc>()) {
237 NonLoc oflags = V.castAs<NonLoc>();
237 NonLoc oflags = V.castAs<NonLoc>();
238 NonLoc ocreateFlag = C.getSValBuilder()
239 .makeIntVal(Val_O_CREAT.getValue(), oflagsEx->getType()).castAs<NonLoc>();
tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp 157 NonLoc ArrayLength =
158 svalBuilder.evalCast(sizeD, SizeTy, SE->getType()).castAs<NonLoc>();
166 state, BO_Mul, ArrayLength, EleSizeVal.castAs<NonLoc>(), SizeTy);
tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp 106 if (!LHSVal.getAs<NonLoc>()) {
109 if (LHSVal.isUnknownOrUndef() || !LHSVal.getAs<NonLoc>())
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 322 if (!InitValWithAdjustments.getAs<NonLoc>()) {
2376 if (Optional<NonLoc> NL = CondV.getAs<NonLoc>())
2376 if (Optional<NonLoc> NL = CondV.getAs<NonLoc>())
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp 1024 state = state->BindExpr(U, LCtx, evalComplement(V.castAs<NonLoc>()));
1028 state = state->BindExpr(U, LCtx, evalMinus(V.castAs<NonLoc>()));
1044 Result = evalBinOp(state, BO_EQ, V.castAs<NonLoc>(), X,
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp 989 MemRegionManager::getElementRegion(QualType elementType, NonLoc Idx,
tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp 338 Idx.castAs<NonLoc>(), Min, indexTy);
344 svalBuilder.evalBinOpNN(this, BO_Add, UpperBound.castAs<NonLoc>(),
351 SVal inBound = svalBuilder.evalBinOpNN(this, BO_LT, newIdx.castAs<NonLoc>(),
352 newBound.castAs<NonLoc>(), Ctx.IntTy);
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp 587 NonLoc createLazyBinding(RegionBindingsConstRef B, const TypedValueRegion *R);
1439 NonLoc ZeroIdx = svalBuilder.makeZeroArrayIndex();
1926 NonLoc index = ER->getIndex();
2092 NonLoc RegionStoreManager::createLazyBinding(RegionBindingsConstRef B,
2270 const NonLoc &Idx = svalBuilder.makeArrayIndex(i);
2317 NonLoc Idx = svalBuilder.makeArrayIndex(index);
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp 67 NonLoc SValBuilder::makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
77 NonLoc SValBuilder::makeNonLoc(const llvm::APSInt& lhs,
85 NonLoc SValBuilder::makeNonLoc(const SymExpr *lhs, BinaryOperator::Opcode op,
92 NonLoc SValBuilder::makeNonLoc(const SymExpr *operand,
110 return evalCastFromNonLoc(val.castAs<NonLoc>(), ArrayIndexTy);
378 NonLoc LHS, NonLoc RHS,
378 NonLoc LHS, NonLoc RHS,
421 return evalBinOpLN(state, op, *LV, rhs.castAs<NonLoc>(), type);
430 return evalBinOpLN(state, op, *RV, lhs.castAs<NonLoc>(), type);
433 return evalBinOpNN(state, op, lhs.castAs<NonLoc>(), rhs.castAs<NonLoc>(),
433 return evalBinOpNN(state, op, lhs.castAs<NonLoc>(), rhs.castAs<NonLoc>(),
503 NonLoc ToTypeMaxVal =
507 .castAs<NonLoc>();
510 NonLoc FromVal = val.castAs<NonLoc>();
510 NonLoc FromVal = val.castAs<NonLoc>();
512 NonLoc CompVal =
513 evalBinOpNN(state, BO_LE, FromVal, ToTypeMaxVal, CmpTy).castAs<NonLoc>();
518 NonLoc CastVal = makeNonLoc(se, originalTy, castTy);
tools/clang/lib/StaticAnalyzer/Core/SVals.cpp 302 castAs<NonLoc>().dumpToStream(os);
tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp 41 return assume(State, Cond.castAs<NonLoc>(), Assumption);
45 NonLoc Cond, bool Assumption) {
53 NonLoc Cond,
95 ProgramStateRef State, NonLoc Value, const llvm::APSInt &From,
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp 27 SVal evalCastFromNonLoc(NonLoc val, QualType castTy) override;
36 SVal evalMinus(NonLoc val) override;
37 SVal evalComplement(NonLoc val) override;
39 NonLoc lhs, NonLoc rhs, QualType resultTy) override;
39 NonLoc lhs, NonLoc rhs, QualType resultTy) override;
43 Loc lhs, NonLoc rhs, QualType resultTy) override;
71 : evalCastFromNonLoc(Val.castAs<NonLoc>(), CastTy);
74 SVal SimpleSValBuilder::evalCastFromNonLoc(NonLoc val, QualType castTy) {
195 SVal SimpleSValBuilder::evalMinus(NonLoc val) {
204 SVal SimpleSValBuilder::evalComplement(NonLoc X) {
371 static NonLoc doRearrangeUnchecked(ProgramStateRef State,
399 .castAs<NonLoc>();
446 static Optional<NonLoc> tryRearrange(ProgramStateRef State,
447 BinaryOperator::Opcode Op, NonLoc Lhs,
448 NonLoc Rhs, QualType ResultTy) {
506 NonLoc lhs, NonLoc rhs,
506 NonLoc lhs, NonLoc rhs,
508 NonLoc InputLHS = lhs;
509 NonLoc InputRHS = rhs;
755 if (auto simplifiedLhsAsNonLoc = simplifiedLhs.getAs<NonLoc>()) {
764 if (Optional<NonLoc> V = tryRearrange(state, op, lhs, rhs, resultTy))
899 if (Optional<NonLoc> Result = ResultVal.getAs<NonLoc>())
899 if (Optional<NonLoc> Result = ResultVal.getAs<NonLoc>())
949 NonLoc l = evalCastFromLoc(lhs, boolType).castAs<NonLoc>();
949 NonLoc l = evalCastFromLoc(lhs, boolType).castAs<NonLoc>();
950 NonLoc r = makeTruthVal(false, boolType).castAs<NonLoc>();
950 NonLoc r = makeTruthVal(false, boolType).castAs<NonLoc>();
1028 Optional<NonLoc> LeftIndex = LeftIndexVal.getAs<NonLoc>();
1028 Optional<NonLoc> LeftIndex = LeftIndexVal.getAs<NonLoc>();
1032 LeftIndex = LeftIndexVal.getAs<NonLoc>();
1038 Optional<NonLoc> RightIndex = RightIndexVal.getAs<NonLoc>();
1038 Optional<NonLoc> RightIndex = RightIndexVal.getAs<NonLoc>();
1042 RightIndex = RightIndexVal.getAs<NonLoc>();
1105 Loc lhs, NonLoc rhs, QualType resultTy) {
1170 rhs = convertToArrayIndex(rhs).castAs<NonLoc>();
1202 if (Optional<NonLoc> indexV = index.getAs<NonLoc>()) {
1202 if (Optional<NonLoc> indexV = index.getAs<NonLoc>()) {
tools/clang/lib/StaticAnalyzer/Core/Store.cpp 63 NonLoc idx = svalBuilder.makeArrayIndex(index);
69 NonLoc idx = svalBuilder.makeZeroArrayIndex();
477 SVal StoreManager::getLValueElement(QualType elementType, NonLoc Offset,
496 Offset = svalBuilder.convertToArrayIndex(Offset).castAs<NonLoc>();
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) noexcept
184 typename enable_if<__and_<__not_<__is_tuple_like<_Tp>>,
185 is_move_constructible<_Tp>,
186 is_move_assignable<_Tp>>::value>::type
187 swap(_Tp& __a, _Tp& __b)
187 swap(_Tp& __a, _Tp& __b)
198 _Tp __tmp = _GLIBCXX_MOVE(__a);
usr/include/c++/7.4.0/bits/stl_pair.h 100 return __and_<is_constructible<_T1, const _U1&>,
100 return __and_<is_constructible<_T1, const _U1&>,
107 return __and_<is_convertible<const _U1&, _T1>,
107 return __and_<is_convertible<const _U1&, _T1>,
114 return __and_<is_constructible<_T1, _U1&&>,
114 return __and_<is_constructible<_T1, _U1&&>,
121 return __and_<is_convertible<_U1&&, _T1>,
121 return __and_<is_convertible<_U1&&, _T1>,
128 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
128 using __do_converts = __and_<is_convertible<const _U1&, _T1>,
133 return __and_<is_constructible<_T1, const _U1&>,
133 return __and_<is_constructible<_T1, const _U1&>,
142 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
142 using __do_converts = __and_<is_convertible<_U1&&, _T1>,
147 return __and_<is_constructible<_T1, _U1&&>,
147 return __and_<is_constructible<_T1, _U1&&>,
209 : private __pair_base<_T1, _T2>
211 typedef _T1 first_type; /// @c first_type is the first bound type
214 _T1 first; /// @c first is a copy of the first object
252 using _PCCP = _PCC<true, _T1, _T2>;
260 constexpr pair(const _T1& __a, const _T2& __b)
269 explicit constexpr pair(const _T1& __a, const _T2& __b)
283 _T1, _T2>;
311 constexpr pair(_U1&& __x, const _T2& __y)
325 constexpr pair(const _T1& __x, _U2&& __y)
332 explicit pair(const _T1& __x, _U2&& __y)
341 constexpr pair(_U1&& __x, _U2&& __y)
379 __and_<is_copy_assignable<_T1>,
390 __and_<is_move_assignable<_T1>,
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>
1160 : public is_constructible<_Tp, _Tp&&>
1160 : public is_constructible<_Tp, _Tp&&>
1166 : public __is_move_constructible_impl<_Tp>
1215 : public __and_<is_constructible<_Tp, _Args...>,
1216 __is_nt_constructible_impl<_Tp, _Args...>>
1246 : public is_nothrow_constructible<_Tp, _Tp&&>
1246 : public is_nothrow_constructible<_Tp, _Tp&&>
1252 : public __is_nothrow_move_constructible_impl<_Tp>
1286 : public is_assignable<_Tp&, const _Tp&>
1286 : public is_assignable<_Tp&, const _Tp&>
1292 : public __is_copy_assignable_impl<_Tp>
1304 : public is_assignable<_Tp&, _Tp&&>
1304 : public is_assignable<_Tp&, _Tp&&>
1310 : public __is_move_assignable_impl<_Tp>
1352 : public is_nothrow_assignable<_Tp&, _Tp&&>
1352 : public is_nothrow_assignable<_Tp&, _Tp&&>
1358 : public __is_nt_move_assignable_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; };
2574 typename remove_reference<_Tp>::type>::type>::type