#include <utility>
#include <type_traits>
#include <cstdint>
struct strict_uint64_t
{
public:
strict_uint64_t(uint64_t arg)
: value(arg)
{ }
operator uint64_t() const
{
return value;
}
private:
uint64_t value;
};
int main() {
strict_uint64_t a = 2LL; //ok
strict_uint64_t b = 2; //ok
strict_uint64_t c = 2ULL;
return 0;
}
ICAgICNpbmNsdWRlIDx1dGlsaXR5PgogICAgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogICAgI2luY2x1ZGUgPGNzdGRpbnQ+CiAgICAgCiAgICBzdHJ1Y3Qgc3RyaWN0X3VpbnQ2NF90CiAgICB7CiAgICBwdWJsaWM6CiAgICAKICAgIHN0cmljdF91aW50NjRfdCh1aW50NjRfdCBhcmcpCiAgICA6IHZhbHVlKGFyZykKICAgIHsgfQogICAgIAogICAgb3BlcmF0b3IgdWludDY0X3QoKSBjb25zdAogICAgewogICAgcmV0dXJuIHZhbHVlOwogICAgfQogICAgIAogICAgcHJpdmF0ZToKICAgIHVpbnQ2NF90IHZhbHVlOwogICAgfTsKICAgICAKICAgIGludCBtYWluKCkgewogICAgc3RyaWN0X3VpbnQ2NF90IGEgPSAyTEw7IC8vb2sKICAgIHN0cmljdF91aW50NjRfdCBiID0gMjsgLy9vawogICAgc3RyaWN0X3VpbnQ2NF90IGMgPSAyVUxMOwogICAgcmV0dXJuIDA7CiAgICB9