|
@@ -59,7 +59,7 @@ class Z
|
|
public:
|
|
public:
|
|
constexpr Z() : i_(0) {}
|
|
constexpr Z() : i_(0) {}
|
|
constexpr Z(int i) : i_(i) {}
|
|
constexpr Z(int i) : i_(i) {}
|
|
- constexpr Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
|
|
|
|
|
|
+ Z(std::initializer_list<int> il) : i_(il.begin()[0]), j_(il.begin()[1])
|
|
{throw 6;}
|
|
{throw 6;}
|
|
|
|
|
|
friend constexpr bool operator==(const Z& x, const Z& y)
|
|
friend constexpr bool operator==(const Z& x, const Z& y)
|
|
@@ -97,6 +97,8 @@ int main()
|
|
: optional<Y>(in_place, i) {}
|
|
: optional<Y>(in_place, i) {}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ constexpr test_constexpr_ctor dopt(in_place, {42, 101, -1});
|
|
|
|
+ static_assert(*dopt == Y{42, 101, -1}, "");
|
|
}
|
|
}
|
|
{
|
|
{
|
|
static_assert(std::is_constructible<optional<Z>, std::initializer_list<int>&>::value, "");
|
|
static_assert(std::is_constructible<optional<Z>, std::initializer_list<int>&>::value, "");
|
|
@@ -109,13 +111,5 @@ int main()
|
|
{
|
|
{
|
|
assert(i == 6);
|
|
assert(i == 6);
|
|
}
|
|
}
|
|
-
|
|
|
|
- struct test_constexpr_ctor
|
|
|
|
- : public optional<Z>
|
|
|
|
- {
|
|
|
|
- constexpr test_constexpr_ctor(in_place_t, std::initializer_list<int> i)
|
|
|
|
- : optional<Z>(in_place, i) {}
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|