#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;
}
