#include <string>
#include <type_traits>
template<template<typename T, typename U> class aaa, typename bind1st_type>
struct binder
{
template<typename T>
using type = aaa<bind1st_type, T>;
};
int main()
{
auto r = binder<std::is_base_of, std::string>::type<void>::value;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKCnRlbXBsYXRlPHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGNsYXNzIGFhYSwgdHlwZW5hbWUgYmluZDFzdF90eXBlPgpzdHJ1Y3QgYmluZGVyCnsKCXRlbXBsYXRlPHR5cGVuYW1lIFQ+Cgl1c2luZyB0eXBlID0gYWFhPGJpbmQxc3RfdHlwZSwgVD47Cn07CgoKaW50IG1haW4oKQp7CglhdXRvIHIgPSBiaW5kZXI8c3RkOjppc19iYXNlX29mLCBzdGQ6OnN0cmluZz46OnR5cGU8dm9pZD46OnZhbHVlOwp9Cg==