
#include <typeinfo>
#include <iostream>

template<class T>
class registrator
{
public:
    registrator()
    {
	std::cerr << typeid(this).name() << "\n";
    }
};

template<class T>
class any_holder
{
public:
    any_holder()
    {
	&registrator_;
    }

private:
    static registrator<T> registrator_;

};

template<class T>
registrator<T> any_holder<T>::registrator_;

int main()
{
    any_holder<int> ai;
    any_holder<bool> ab;    
}

