Retro68/gcc/libstdc++-v3/testsuite/20_util/optional/84601.cc
Wolfgang Thaller 6fbf4226da gcc-9.1
2019-06-20 20:10:10 +02:00

23 lines
443 B
C++

// { dg-options "-std=gnu++17" }
// { dg-do compile { target c++17 } }
#include <optional>
using pair_t = std::pair<int, int>;
using opt_t = std::optional<pair_t>;
static_assert(std::is_copy_constructible_v<opt_t::value_type>);
static_assert(std::is_copy_assignable_v<opt_t::value_type>);
static_assert(std::is_copy_assignable_v<opt_t>); // assertion fails.
class A
{
void f(const opt_t& opt)
{
_opt = opt;
}
opt_t _opt;
};