gcc/gcc/testsuite/g++.dg/cpp1z/pr87814.C

27 lines
566 B
C

// { dg-do compile { target c++17 } }
template<class Element>
struct box {
template<class E>
constexpr box(E && e)
noexcept(noexcept(Element(e)))
{}
};
template<class... Ts>
struct compressed_tuple_ : box<Ts> ... {
template<typename... Args>
constexpr compressed_tuple_(Args &&... args)
noexcept((noexcept(box<Ts>(args)) && ...))
: box<Ts>(args)...
{}
};
struct adaptor_cursor : compressed_tuple_<int*> {
using compressed_tuple_::compressed_tuple_;
};
int main() {
(void)noexcept(adaptor_cursor{(int*)0});
}