Результаты поиска по запросу "template-specialization"
Нет, в этом примере нет специализации. Специализация - это не когда вызывается шаблонная функция. Это когда вы пишете несколько версий шаблона, некоторые из которых имеют специализированные типы. Как говорит DeadMG, вы не можете частично специализировать функцию.
я есть шаблонная функция, которую я хочу специализироватьfoo вconst char[N] (жестко закодированные строки) template<typename T> const std::string foo() ; template<typename T,int N> const std::string foo<T[N]>() { return "T[N]"; } //this doesn't ...
почему нельзя перегружать стандартные функции? это плохая привычка, но пространство имен std не является особенным. Мне это не нравится, но многие продукты добавляют std swap для своих типов в пространстве имен std.
я есть примечания к учебнику, в котором вы можете указать собственную реализацию стандартных библиотечных функций, таких какswap(x,y) через специализацию шаблона для перегрузки функций. Это было бы полезно для любых типов, которые могут извлечь ...
Можно ли специализировать определение шаблона, основываясь на существовании вложенной typedef параметра типа шаблона?
У меня есть шаблон,template <typename T> class wrapper, что я хотел бы специализироваться на основе существованияtypename T::context_type, Еслиtypename T::context_type объявляется, а затем перегружаются конструкторы и ...
Специализация шаблона оператора преобразования
Вот в основном академическое упражнение в понимании операторов преобразования, шаблонов и шаблонных специализаций. Шаблон оператора преобразования в следующем коде работает дляint, float, а такжеdouble, но не работает при ...
Явная специализация после создания
У меня есть следующий код: typedef vector<int> Vec; typedef vector<Vec> VecOfVec; template<typename Vec> Vec DoSomething(const Vec &v); template<> VecOfVec DoSomething<VecOfVec>(const VecOfVec &v) { VecOfVec r; for(auto i = v.begin(); i != ...
Могу ли я специализировать шаблон класса с помощью шаблона псевдонима?
Вот простой пример: class bar {}; template <typename> class foo {}; template <> using foo<int> = bar;Это разрешено?
C ++ шаблон функции частичная специализация?
Я знаю, что приведенный ниже код является частичной специализацией класса: template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … ...
Синтаксис специализации шаблонов C ++
В C ++ Primer Plus (2001, чешский перевод) я нашел следующий синтаксис специализации шаблона: шаблон функции template <typename T> void foo(T);синтаксис специализации void foo(int param); // 1 void foo<int>(int param); // 2 template <> ...
Каков наилучший способ создания шаблона функции только для специализации?
Есть ли лучший способ сделать следующее? #include <iostream> template <typename T> T Bar(); template <> int Bar<int>() { return 3; } // Potentially other specialisations int main() { std::cout << Bar<int>() << std::endl; // This should work ...
скрыть шаблон функции, объявить специализации
Это продолжение кШаблоны C ++: предотвращение создания базового шаблона [https://stackoverflow.com/questions/2050900/c-templates-prevent-instantiation-of-base-template] Я использую шаблоны для достижения перегрузки функций без путаницы ...