#include <iostream>
#include <type_traits>
//#define DEFINE_F
#ifdef DEFINE_F
void f()
{
}
#endif
namespace
{
constexpr struct special
{
std::false_type operator()() const;
}f;
}
struct checkForF
{
static const constexpr auto value = std::conditional< std::is_same<std::false_type, decltype(::f())>::value, std::false_type, std::true_type >::type();
};
int main()
{
std::cout << checkForF::value << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CgovLyNkZWZpbmUgREVGSU5FX0YKCiNpZmRlZiBERUZJTkVfRgp2b2lkIGYoKQp7Cgp9CiNlbmRpZgoKbmFtZXNwYWNlCnsKCWNvbnN0ZXhwciBzdHJ1Y3Qgc3BlY2lhbAogICAgewogICAgICBzdGQ6OmZhbHNlX3R5cGUgb3BlcmF0b3IoKSgpIGNvbnN0OwogICAgfWY7CQp9CgpzdHJ1Y3QgY2hlY2tGb3JGCnsKCXN0YXRpYyBjb25zdCBjb25zdGV4cHIgYXV0byB2YWx1ZSA9IHN0ZDo6Y29uZGl0aW9uYWw8IHN0ZDo6aXNfc2FtZTxzdGQ6OmZhbHNlX3R5cGUsIGRlY2x0eXBlKDo6ZigpKT46OnZhbHVlLCBzdGQ6OmZhbHNlX3R5cGUsIHN0ZDo6dHJ1ZV90eXBlID46OnR5cGUoKTsKfTsKCmludCBtYWluKCkKewogIAlzdGQ6OmNvdXQgPDwgY2hlY2tGb3JGOjp2YWx1ZSA8PCBzdGQ6OmVuZGw7Cn0=