#include <type_traits>
struct chameleon
{
template<typename T>
constexpr operator T() const
{
return T{};
}
constexpr chameleon() = default;
};
template<int foo>
struct bar
{
};
using mytype = std::integral_constant<int,chameleon{}>;
static_assert( mytype::value == 0 , "Mmmmm...." );
int main()
{
mytype f;
}
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKc3RydWN0IGNoYW1lbGVvbgogICAgewogICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgICAgY29uc3RleHByIG9wZXJhdG9yIFQoKSBjb25zdAogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIFR7fTsKICAgICAgICB9CgogICAgICAgIGNvbnN0ZXhwciBjaGFtZWxlb24oKSA9IGRlZmF1bHQ7CiAgICB9OwoKdGVtcGxhdGU8aW50IGZvbz4Kc3RydWN0IGJhcgp7Cgp9OwoKdXNpbmcgbXl0eXBlID0gc3RkOjppbnRlZ3JhbF9jb25zdGFudDxpbnQsY2hhbWVsZW9ue30+OwoKc3RhdGljX2Fzc2VydCggbXl0eXBlOjp2YWx1ZSA9PSAwICwgIk1tbW1tLi4uLiIgKTsKCmludCBtYWluKCkKewogICAgbXl0eXBlIGY7Cn0=