Результаты поиска по запросу "template-specialization"

2 ответа

Нет, в этом примере нет специализации. Специализация - это не когда вызывается шаблонная функция. Это когда вы пишете несколько версий шаблона, некоторые из которых имеют специализированные типы. Как говорит 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 ...

3 ответа

почему нельзя перегружать стандартные функции? это плохая привычка, но пространство имен std не является особенным. Мне это не нравится, но многие продукты добавляют std swap для своих типов в пространстве имен std.

я есть примечания к учебнику, в котором вы можете указать собственную реализацию стандартных библиотечных функций, таких какswap(x,y) через специализацию шаблона для перегрузки функций. Это было бы полезно для любых типов, которые могут извлечь ...

3 ответа

Можно ли специализировать определение шаблона, основываясь на существовании вложенной typedef параметра типа шаблона?

У меня есть шаблон,template <typename T> class wrapper, что я хотел бы специализироваться на основе существованияtypename T::context_type, Еслиtypename T::context_type объявляется, а затем перегружаются конструкторы и ...

ТОП публикаций

2 ответа

Специализация шаблона оператора преобразования

Вот в основном академическое упражнение в понимании операторов преобразования, шаблонов и шаблонных специализаций. Шаблон оператора преобразования в следующем коде работает дляint, float, а такжеdouble, но не работает при ...

2 ответа

Явная специализация после создания

У меня есть следующий код: 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 != ...

3 ответа

Могу ли я специализировать шаблон класса с помощью шаблона псевдонима?

Вот простой пример: class bar {}; template <typename> class foo {}; template <> using foo<int> = bar;Это разрешено?

6 ответов

C ++ шаблон функции частичная специализация?

Я знаю, что приведенный ниже код является частичной специализацией класса: template <typename T1, typename T2> class MyClass { … }; // partial specialization: both template parameters have same type template <typename T> class MyClass<T,T> { … ...

2 ответа

Синтаксис специализации шаблонов C ++

В C ++ Primer Plus (2001, чешский перевод) я нашел следующий синтаксис специализации шаблона: шаблон функции template <typename T> void foo(T);синтаксис специализации void foo(int param); // 1 void foo<int>(int param); // 2 template <> ...

5 ответов

Каков наилучший способ создания шаблона функции только для специализации?

Есть ли лучший способ сделать следующее? #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 ...

4 ответа

скрыть шаблон функции, объявить специализации

Это продолжение кШаблоны C ++: предотвращение создания базового шаблона [https://stackoverflow.com/questions/2050900/c-templates-prevent-instantiation-of-base-template] Я использую шаблоны для достижения перегрузки функций без путаницы ...