I\'ve seen some examples of C++ using template template parameters (that is templates which take templates as parameters) to do policy-based class design. What other uses do
This is what I ran into:
template
class B
{
A& a;
};
template
class A
{
B b;
};
class AInstance : A>>>>>>>
{
};
Can be solved to:
template
class B
{
A& a;
};
template< template class B>
class A
{
B b;
};
class AInstance : A //happy
{
};
or (working code):
template
class B
{
public:
A* a;
int GetInt() { return a->dummy; }
};
template< template class B>
class A
{
public:
A() : dummy(3) { b.a = this; }
B b;
int dummy;
};
class AInstance : public A //happy
{
public:
void Print() { std::cout << b.GetInt(); }
};
int main()
{
std::cout << "hello";
AInstance test;
test.Print();
}