template-specialization
У меня есть шаблон класса template<typename EventT, typename StateT, typename ActionT, bool InjectEvent = false, bool InjectStates = false, bool InjectMachine = false> class StateMachine; И специализация его template<typename EventT, typename StateT, typename ActionResultT, typename ...ActionAr...
Я нашел этот кусок поддельного кода (придуманный пример ниже): template <int I, typename T> struct foo { static int bar() { return 1; } }; template <std::size_t Index, typename T> struct foo<Index, T*> { static int bar() { return 2; } }; Обратите ...
Я хочу написать следующее: template <typename S, typename T> void foo() { /* code for the general case */ } template <typename T> void foo<MySType,T>() { /* partially specialized code - for any kind of T, but when S is MySType */ } Или, в других случаях, следующее: template &l...
Следующий код компилируется правильно. #include <string> template <typename T, typename U> class Container { private: T value1; U value2; public: Container(){} void doSomething(T val1, U val2); }; template<typename T, typename U> void Container<typename T, typename U>...
У меня есть template <int i> struct a { static void f (); }; С специализациями, выполненными в разных местах кода. Как я могу вызвать правильный a<i>::f для i, известного только во время выполнения? void f (int i) { a<i>::f (); } // won't compile Я не хочу перечислять все возможные зн...
Это произошло в русле мысли, следующей за шаблонной специализацией или условными выражениями?. Я использую специализацию шаблона в своем проекте и наткнулся на этот пример из Stroustrup: Matrix.h , где он объявляет класс шаблона MatrixBase template<class T> class Matrix_base Для общих элементов и м...
Я хотел бы специализировать getVector функцию-член, я пытаюсь использовать SFINAE для этого. Но это работает только в том случае, если Dim равен 3 или больше. template <size_t Dim> class Mat { ... template <size_t VDim, typename enable_if<(Dim > 1 && VDim == 0)>::type* = nul...
Можно ли будет специализироваться std::optional на определяемых пользователем типах? Если нет, то не слишком ли поздно предложить это стандарту? Мой вариант использования для этого-это целочисленный класс, представляющий значение в пределах диапазона. Например, у вас может быть целое число, которое лежит где...
Можно ли написать частичную специализацию шаблона, которая используется только для типов классов, которые, например, наследуются от определенного класса или соответствуют некоторому другому ограничению, которое может быть выражено через признаки типа? то есть, что-то вроде этого: class A{} class B : publi...
Я знаю, что приведенный ниже код является частичная специализация класса: template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … }; также я знаю, что C++ не раз...