#include <iostream>
using namespace std;
struct Foo {
Foo() { cout << "default\n"; }
Foo(const long long) { cout << "implicit\n"; }
};
struct Bar {
Bar(const short param) : param(param) {}
operator long long() const { return static_cast<long long>(param); }
const short param;
};
int main() {
Foo foo = Bar(13);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEZvbyB7CiAgRm9vKCkgeyBjb3V0IDw8ICJkZWZhdWx0XG4iOyB9CiAgRm9vKGNvbnN0IGxvbmcgbG9uZykgeyBjb3V0IDw8ICJpbXBsaWNpdFxuIjsgfQp9OwoKc3RydWN0IEJhciB7CiAgQmFyKGNvbnN0IHNob3J0IHBhcmFtKSA6IHBhcmFtKHBhcmFtKSB7fQogIG9wZXJhdG9yIGxvbmcgbG9uZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4ocGFyYW0pOyB9CiAgY29uc3Qgc2hvcnQgcGFyYW07Cn07CgppbnQgbWFpbigpIHsKICBGb28gZm9vID0gQmFyKDEzKTsKfQ==