Здравствуйте. Можно ли шаблонный класс указать в качество аргумента шаблона? Так не прокатывает: Код (Text): template <int i> class A { public: static int const value = i + 1; }; template <class T> class X { public: static int const m = T<0>::value; }; int main() { X<A> x; }
Код (Text): template<int x> class T { public: static void bar() { } }; template<template<int x> class T> void foo() { T<0>::bar(); } ... foo<T>();
100gold, не, это немного не то. В моём примере class X должен быть именно классом, у него есть несколько мемберов, которые инициализируются посредством шаблонного класса, т.е. Код (Text): template <class T> class X { public: static int const m[] = {T<5>::value, T<7>::value, ... } }; А вот T может быть функцией, т.е. меня устроит и такой вариант Код (Text): template <class T> class X { public: static int const m[] = {T(5), T(7), ... } }; inline int func(int x) { return x + 1; } int main() { X<func> x; }
template <int i> class A { public: static int const value = i + 1; }; template <template <int> class T> class X { public: static int const m = T<0>::value; }; не поможет?