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

2 ответа

Это абсолютно не позволяет добавлять перегрузки к

а изcppreference.com [https://en.cppreference.com/w/cpp/language/extending_std]: Добавление шаблона специализации Допускается добавлять шаблонные специализации для любой стандартной библиотеки| класс (начиная с C ++ 20) |шаблона в пространство ...

2 ответа

или сделайте это встроенным

##A.hh template<class T> void func(T t) {} template<> void func<int>(int t) {} void func2(); ##A.cpp void func2() {} ##main.cpp func("hello"); func(int());учаю сообщение об ошибке: ошибка LNK2005: «void __cdecl func (int)» (?? $ func @ H @@ YAXH ...

2 ответа

Благодаря AProgrammer, не понял, что частичная специализация вообще не возможна для функции-члена.

я есть шаблонный класс с типом и нетиповым параметром шаблона. Я хочу специализировать функцию-член, что я нашел, как в примере ниже, я могу выполнить полную специализацию штрафа. template<typename T, int R> struct foo { foo(const T& v) : ...

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

2 ответа

 У меня нет моей копии стандарта под рукой, поэтому не уверен, что это настоящая проблема или старый компилятор.

я есть функция шаблона variadic, которая вызывает себя для определения наибольшего числа в списке (составленного из шаблонизированных аргументов). Я пытаюсь сделать специализацию для случая, когда пакет параметров пуст, поэтому я могу просто ...

2 ответа

Вы также можете использовать логический параметр шаблона по умолчанию, например:

template<typename T> struct A { A<T> operator%( const T& x); }; template<typename T> A<T> A<T>::operator%( const T& x ) { ... } могу использовать enable_if, чтобы сделать следующую специализацию для любого типа с плавающей запятой ...

2 ответа

Просто и легко :)

я есть шаблонный класс с шаблонной функцией-членом template<class T> class A { public: template<class CT> CT function(); };Теперь я хочу специализировать шаблонную функцию-член двумя способами. Сначала для того, чтобы иметь тот же тип как ...

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 ...

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 != ...

2 ответа

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

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