Lines Matching refs:constexpr

25     constexpr variant() noexcept(see below);
26 variant(const variant&); // constexpr in C++20
27 variant(variant&&) noexcept(see below); // constexpr in C++20
29 template <class T> constexpr variant(T&&) noexcept(see below);
32 constexpr explicit variant(in_place_type_t<T>, Args&&...);
35 constexpr explicit variant(
39 constexpr explicit variant(in_place_index_t<I>, Args&&...);
42 constexpr explicit variant(
49 variant& operator=(const variant&); // constexpr in C++20
50 variant& operator=(variant&&) noexcept(see below); // constexpr in C++20
68 constexpr bool valueless_by_exception() const noexcept;
69 constexpr size_t index() const noexcept;
79 inline constexpr size_t variant_size_v = variant_size<T>::value;
100 inline constexpr size_t variant_npos = -1;
104 constexpr bool holds_alternative(const variant<Types...>&) noexcept;
107 constexpr variant_alternative_t<I, variant<Types...>>&
111 constexpr variant_alternative_t<I, variant<Types...>>&&
115 constexpr variant_alternative_t<I, variant<Types...>> const&
119 constexpr variant_alternative_t<I, variant<Types...>> const&&
123 constexpr T& get(variant<Types...>&);
126 constexpr T&& get(variant<Types...>&&);
129 constexpr const T& get(const variant<Types...>&);
132 constexpr const T&& get(const variant<Types...>&&);
135 constexpr add_pointer_t<variant_alternative_t<I, variant<Types...>>>
139 constexpr add_pointer_t<const variant_alternative_t<I, variant<Types...>>>
143 constexpr add_pointer_t<T>
147 constexpr add_pointer_t<const T>
152 constexpr bool operator==(const variant<Types...>&, const variant<Types...>&);
155 constexpr bool operator!=(const variant<Types...>&, const variant<Types...>&);
158 constexpr bool operator<(const variant<Types...>&, const variant<Types...>&);
161 constexpr bool operator>(const variant<Types...>&, const variant<Types...>&);
164 constexpr bool operator<=(const variant<Types...>&, const variant<Types...>&);
167 constexpr bool operator>=(const variant<Types...>&, const variant<Types...>&);
171 constexpr see below visit(Visitor&&, Variants&&...);
177 constexpr bool operator<(monostate, monostate) noexcept;
178 constexpr bool operator>(monostate, monostate) noexcept;
179 constexpr bool operator<=(monostate, monostate) noexcept;
180 constexpr bool operator>=(monostate, monostate) noexcept;
181 constexpr bool operator==(monostate, monostate) noexcept;
182 constexpr bool operator!=(monostate, monostate) noexcept;
251 _LIBCPP_INLINE_VAR constexpr size_t variant_size_v = variant_size<_Tp>::value;
291 _LIBCPP_INLINE_VAR constexpr size_t variant_npos = static_cast<size_t>(-1);
293 constexpr int __choose_index_type(unsigned int __num_elem) {
313 constexpr _IndexType __variant_npos = static_cast<_IndexType>(-1);
319 constexpr size_t __find_index() {
320 constexpr bool __matches[] = {is_same_v<_Tp, _Types>...};
358 constexpr _Trait __trait =
364 constexpr _Trait __common_trait(initializer_list<_Trait> __traits) {
376 static constexpr _Trait __copy_constructible_trait =
381 static constexpr _Trait __move_constructible_trait =
386 static constexpr _Trait __copy_assignable_trait = __common_trait(
390 static constexpr _Trait __move_assignable_trait = __common_trait(
394 static constexpr _Trait __destructible_trait = __common_trait(
403 static constexpr auto&& __get_alt(_Vp&& __v, in_place_index_t<0>) {
409 static constexpr auto&& __get_alt(_Vp&& __v, in_place_index_t<_Ip>) {
417 static constexpr auto&& __get_alt(_Vp&& __v) {
426 static constexpr auto&& __get_alt(_Vp&& __v) {
438 static constexpr decltype(auto)
440 constexpr auto __fdiagonal =
449 static constexpr decltype(auto) __visit_alt(_Visitor&& __visitor,
451 constexpr auto __fmatrix =
462 static constexpr const _Tp& __at(const _Tp& __elem) { return __elem; }
466 static constexpr auto&& __at(const array<_Tp, _Np>& __elems,
472 static constexpr void __std_visit_visitor_return_type_check() {
480 static constexpr auto __make_farray(_Fs&&... __fs) {
490 static constexpr decltype(auto) __dispatch(_Fp __f, _Vs... __vs) {
499 static constexpr auto __make_dispatch(index_sequence<_Is...>) {
505 static constexpr auto __make_fdiagonal_impl() {
512 static constexpr auto __make_fdiagonal_impl(index_sequence<_Is...>) {
518 static constexpr auto __make_fdiagonal() {
519 constexpr size_t _Np = __uncvref_t<_Vp>::__size();
526 static constexpr auto __make_fmatrix_impl(index_sequence<_Is...> __is) {
532 static constexpr auto __make_fmatrix_impl(index_sequence<_Is...>,
541 static constexpr auto __make_fmatrix() {
550 static constexpr decltype(auto)
559 static constexpr decltype(auto) __visit_alt(_Visitor&& __visitor,
567 static constexpr decltype(auto)
577 static constexpr decltype(auto) __visit_value(_Visitor&& __visitor,
586 static constexpr void __std_visit_exhaustive_visitor_check() {
595 constexpr decltype(auto) operator()(_Alts&&... __alts) const {
607 static constexpr auto __make_value_visitor(_Visitor&& __visitor) {
620 explicit constexpr __alt(in_place_t, _Args&&... __args)
640 explicit constexpr __union(__valueless_t) noexcept : __dummy{} {} \
644 explicit constexpr __union(in_place_index_t<0>, _Args&&... __args) \
649 explicit constexpr __union(in_place_index_t<_Ip>, _Args&&... __args) \
680 explicit constexpr __base(__valueless_t tag) noexcept
685 explicit constexpr __base(in_place_index_t<_Ip>, _Args&&... __args)
691 constexpr bool valueless_by_exception() const noexcept {
696 constexpr size_t index() const noexcept {
702 constexpr auto&& __as_base() & { return *this; }
705 constexpr auto&& __as_base() && { return _VSTD::move(*this); }
708 constexpr auto&& __as_base() const & { return *this; }
711 constexpr auto&& __as_base() const && { return _VSTD::move(*this); }
714 static constexpr size_t __size() { return sizeof...(_Types); }
1088 constexpr bool __results[] = {is_nothrow_move_constructible_v<_Types>...};
1140 constexpr variant() noexcept(is_nothrow_default_constructible_v<__first_type>)
1156 constexpr variant(_Arg&& __arg) noexcept(
1165 explicit constexpr variant(
1179 explicit constexpr variant(
1193 explicit constexpr variant(in_place_type_t<_Tp>, _Args&&... __args) noexcept(
1206 explicit constexpr variant(
1283 constexpr bool valueless_by_exception() const noexcept {
1288 constexpr size_t index() const noexcept { return __impl.index(); }
1313 constexpr bool __holds_alternative(const variant<_Types...>& __v) noexcept {
1319 constexpr bool holds_alternative(const variant<_Types...>& __v) noexcept {
1326 constexpr auto&& __generic_get(_Vp&& __v) {
1337 constexpr variant_alternative_t<_Ip, variant<_Types...>>& get(
1347 constexpr variant_alternative_t<_Ip, variant<_Types...>>&& get(
1357 constexpr const variant_alternative_t<_Ip, variant<_Types...>>& get(
1367 constexpr const variant_alternative_t<_Ip, variant<_Types...>>&& get(
1377 constexpr _Tp& get(variant<_Types...>& __v) {
1385 constexpr _Tp&& get(variant<_Types...>&& __v) {
1394 constexpr const _Tp& get(const variant<_Types...>& __v) {
1402 constexpr const _Tp&& get(const variant<_Types...>&& __v) {
1410 constexpr auto* __generic_get_if(_Vp* __v) noexcept {
1419 constexpr add_pointer_t<variant_alternative_t<_Ip, variant<_Types...>>>
1428 constexpr add_pointer_t<const variant_alternative_t<_Ip, variant<_Types...>>>
1437 constexpr add_pointer_t<_Tp>
1445 constexpr add_pointer_t<const _Tp>
1454 _LIBCPP_INLINE_VISIBILITY constexpr bool operator()(_T1 && __t1, _T2&& __t2) const {
1463 constexpr bool operator==(const variant<_Types...>& __lhs,
1473 constexpr bool operator!=(const variant<_Types...>& __lhs,
1484 constexpr bool operator<(const variant<_Types...>& __lhs,
1496 constexpr bool operator>(const variant<_Types...>& __lhs,
1508 constexpr bool operator<=(const variant<_Types...>& __lhs,
1521 constexpr bool operator>=(const variant<_Types...>& __lhs,
1535 constexpr decltype(auto) visit(_Visitor&& __visitor, _Vs&&... __vs) {
1550 constexpr bool operator<(monostate, monostate) noexcept { return false; }
1553 constexpr bool operator>(monostate, monostate) noexcept { return false; }
1556 constexpr bool operator<=(monostate, monostate) noexcept { return true; }
1559 constexpr bool operator>=(monostate, monostate) noexcept { return true; }
1562 constexpr bool operator==(monostate, monostate) noexcept { return true; }
1565 constexpr bool operator!=(monostate, monostate) noexcept { return false; }