template <int X>
struct A
{
template <int Y>
static int mul() { return X * Y; }
template <int Y>
A() : value(X * Y) {}
int value;
};
int main(int argc, char ** argv)
{
int value = A<5>::mul<7>();
A<5> ... <7> ... a ... ?
return 0;
}
Обычный шаблонный класс. Вызвать его статический шаблонный метод просто (первая строчка в main), а вот как вызвать шаблонный конструктор? В результате a.value должно равняться 35.