#include <iostream>
#include <type_traits>
#include <typeinfo>
using namespace std;
template <typename T>
decltype(T(), bool()) isConstructable() { return true; }
int main() {
cout << typeid(isConstructable<int>()).name() << ' ' << is_rvalue_reference<decltype(isConstructable<int>())>::value << ' ' << isConstructable<int>() << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CiNpbmNsdWRlIDx0eXBlaW5mbz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGVjbHR5cGUoVCgpLCBib29sKCkpIGlzQ29uc3RydWN0YWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KCmludCBtYWluKCkgewoJY291dCA8PCB0eXBlaWQoaXNDb25zdHJ1Y3RhYmxlPGludD4oKSkubmFtZSgpIDw8ICcgJyA8PCBpc19ydmFsdWVfcmVmZXJlbmNlPGRlY2x0eXBlKGlzQ29uc3RydWN0YWJsZTxpbnQ+KCkpPjo6dmFsdWUgPDwgJyAnIDw8IGlzQ29uc3RydWN0YWJsZTxpbnQ+KCkgPDwgZW5kbDsKfQ==