// is_complete
template<typename T, typename... Args>
struct is_complete : integral_constant<bool, is_complete<T>() && is_complete<Args...>()> {};
template<typename T>
struct is_complete{
template<typename U>
static auto test(int) -> decltype(sizeof(U), true_type{});
template<typename>
static auto test(...) -> false_type;
constexpr operator bool() { return decltype(test<T>(0))(); }
};
Ly8gaXNfY29tcGxldGUKICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgogIHN0cnVjdCBpc19jb21wbGV0ZSA6IGludGVncmFsX2NvbnN0YW50PGJvb2wsIGlzX2NvbXBsZXRlPFQ+KCkgJiYgaXNfY29tcGxldGU8QXJncy4uLj4oKT4ge307CiAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICBzdHJ1Y3QgaXNfY29tcGxldGV7CiAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgIHN0YXRpYyBhdXRvIHRlc3QoaW50KSAtPiBkZWNsdHlwZShzaXplb2YoVSksIHRydWVfdHlwZXt9KTsKICAgICAgdGVtcGxhdGU8dHlwZW5hbWU+CiAgICAgIHN0YXRpYyBhdXRvIHRlc3QoLi4uKSAtPiBmYWxzZV90eXBlOwoKICAgICAgY29uc3RleHByIG9wZXJhdG9yIGJvb2woKSB7IHJldHVybiBkZWNsdHlwZSh0ZXN0PFQ+KDApKSgpOyB9CiAgfTs=