struct KLibFactory
{
    template <typename T> void create() {}
};

struct KLibLoader
{
#if 1 // doesn't work
    template <typename T> void createInstance()
    {
        KLibFactory *factory = 0;
        factory->create<int>();
    }
#else // works
    void createInstance()
    {
        KLibFactory *factory = 0;
        factory->create<int>();
    }
#endif
};

int main() {}

