#include <iostream>
template <typename T>
struct marker
{
static const bool init;
marker() { init; }
};
template <typename T>
const bool marker<T>::init = ([](){ std::cout << "init done\n"; return true; })();
class foo : public marker<foo>
{
};
int main(int argc, const char * argv[])
{
foo f;
std::cout << "Hello World\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBtYXJrZXIKewogICAgc3RhdGljIGNvbnN0IGJvb2wgaW5pdDsKCiAgICBtYXJrZXIoKSB7IGluaXQ7IH0KfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjb25zdCBib29sIG1hcmtlcjxUPjo6aW5pdCA9IChbXSgpeyBzdGQ6OmNvdXQgPDwgImluaXQgZG9uZVxuIjsgcmV0dXJuIHRydWU7IH0pKCk7CgpjbGFzcyBmb28gOiBwdWJsaWMgbWFya2VyPGZvbz4KewoKfTsKCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQp7CiAgICBmb28gZjsKCiAgICBzdGQ6OmNvdXQgPDwgIkhlbGxvIFdvcmxkXG4iOwoKICAgIHJldHVybiAwOwp9