#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;
}