mirror of git://gcc.gnu.org/git/gcc.git
27 lines
566 B
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});
|
|
}
|