#include <iostream>
#include <iomanip>
using namespace std;
template <typename T, typename = void>
struct SupportsOstreamOperator : std::false_type {};
template <typename T>
struct SupportsOstreamOperator<T,
decltype(void(std::declval<std::ostream>()
<< std::declval<T>()))>
: std::true_type {};
struct Test{};
int main(int argc, char * argv[])
{
cout << SupportsOstreamOperator<int>::value << endl;
cout << SupportsOstreamOperator<Test>::value << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSB2b2lkPgpzdHJ1Y3QgU3VwcG9ydHNPc3RyZWFtT3BlcmF0b3IgOiBzdGQ6OmZhbHNlX3R5cGUge307CnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdHJ1Y3QgU3VwcG9ydHNPc3RyZWFtT3BlcmF0b3I8VCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2x0eXBlKHZvaWQoc3RkOjpkZWNsdmFsPHN0ZDo6b3N0cmVhbT4oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGQ6OmRlY2x2YWw8VD4oKSkpPgogICAgOiBzdGQ6OnRydWVfdHlwZSB7fTsKCiAgICBzdHJ1Y3QgVGVzdHt9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pCnsKICAgIGNvdXQgPDwgU3VwcG9ydHNPc3RyZWFtT3BlcmF0b3I8aW50Pjo6dmFsdWUgPDwgZW5kbDsKICAgIGNvdXQgPDwgU3VwcG9ydHNPc3RyZWFtT3BlcmF0b3I8VGVzdD46OnZhbHVlIDw8IGVuZGw7Cn0K