template<typename T, typename... Ts>
struct is_complete{
template<unsigned...> void foo();
template<typename... Us>
static auto test(int) -> decltype(foo<sizeof(Us)...>(), true_type{});
template<typename...>
static auto test(...) -> false_type;
constexpr operator bool() { return decltype(test<T, Ts...>(0))(); }
};
CnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIFRzPgpzdHJ1Y3QgaXNfY29tcGxldGV7CiAgdGVtcGxhdGU8dW5zaWduZWQuLi4+IHZvaWQgZm9vKCk7CiAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVXM+CiAgc3RhdGljIGF1dG8gdGVzdChpbnQpIC0+IGRlY2x0eXBlKGZvbzxzaXplb2YoVXMpLi4uPigpLCB0cnVlX3R5cGV7fSk7CiAgdGVtcGxhdGU8dHlwZW5hbWUuLi4+CiAgc3RhdGljIGF1dG8gdGVzdCguLi4pIC0+IGZhbHNlX3R5cGU7CgogIGNvbnN0ZXhwciBvcGVyYXRvciBib29sKCkgeyByZXR1cm4gZGVjbHR5cGUodGVzdDxULCBUcy4uLj4oMCkpKCk7IH0KfTs=