Описание тега explicit-specialization
1
ответ
Явная специализация для оператора перегрузки '<<' (сдвиг влево)
Допустим, у меня есть класс, для которого я хочу перегрузить оператор на основе типа enum: #include <iostream> enum class option : char { normal, do_something_stupid }; class foo { public: int i; explicit foo(int a=0) : i(a) {}; /* overload op…
28 янв '16 в 11:00
1
ответ
C++ явная специализация возвращаемого типа шаблона
Это продолжение этого (более общего) вопроса: предыдущий вопрос. Частичный ответ на настоящий вопрос дается здесь: частичный ответ на настоящий вопрос. Я заинтересован в явной специализации возвращаемого типа на основе аргумента шаблона. Хотя привед…
23 дек '14 в 22:35
1
ответ
Как явно специализировать шаблон функции из другого пространства имен?
Для удобства чтения я хотел бы специализировать шаблон функции, близкий к определению класса, который объявлен внутри пространства имен: #include <iostream> template<typename T> void my_function() { std::cout << "my_function defaul…
02 май '17 в 10:18
6
ответов
Как мне сделать эту явную специализацию?
Возможен ли следующий дизайн?: template <typename T> class Test{ public: template <typename Z> void doSomething(); //rest of things private: T obj; //some things }; Теперь, если бы это было возможно, я бы сделал несколько явных специализ…
25 ноя '10 в 08:01
1
ответ
Расширение пространства имен std посредством частичной специализации шаблона
Насколько я знаю, нам разрешено (за некоторыми исключениями, которые я не буду здесь упоминать) "расширять" namespace std полностью специализируясь std функция шаблона, такая как std::swapт.е. namespace std { template<> void swap<Foo>(Fo…
21 янв '15 в 21:55
2
ответа
Вложенный шаблон специализации
У меня есть шаблонный класс, который нуждается в специализированном конструкторе, когда параметры шаблона того же типа, что и класс. Код ниже не скомпилируется. Каков правильный синтаксис для указания использования определенного конструктора, когда …
25 июн '12 в 19:45
1
ответ
Почему я получаю недостающие символы для явной специализации шаблона в статической библиотеке?
Если я скомпилирую следующий код: // // g++ static.cpp -o static.o // ar rcs libstatic.a static.o // #include <iostream> template < typename T > struct TemplatedClass { void Test( T value ) { std::cout << "Foobar was: " << va…
21 окт '10 в 15:59
1
ответ
Шаблон класса специальная функция-член явная специализация
В C++ iso 2003/2011 [temp.expl.spec]/4 написано, что Функция-член, класс-член или статический член данных шаблона класса могут быть явно специализированы для специализации класса, для которой неявно создается экземпляр; в этом случае определение шаб…
06 янв '15 в 20:37
1
ответ
Как симметрично реализовать сериализацию и десериализацию шаблонных функций в C++
Я хочу написать серию шаблонных функций для сериализации и десериализации объектов. Я закончил сериализацию и все работает: #ifndef SERIALIZE_H #define SERIALIZE_H #include <string> #include <vector> #include <unordered_set> #inclu…
20 сен '15 в 21:50
2
ответа
Явная специализация члена
g++ 3.4.5 принимает этот код: template <typename T> struct A { static const char* const str; }; struct B {}; typedef A<B> C; template<> const char* const C::str = "B"; // Equivalent to following? // template<> const char* con…
16 дек '10 в 18:49
1
ответ
Явная специализация шаблона функции (которая является членом шаблона класса) приводит к ошибке "частичная специализация не допускается", почему?
Я работаю над Visual Studio 2015 community edition скажем, у меня есть простой класс, подобный этому: (Пример ниже "должен быть" компилируемым, потому что он включает в себя все необходимые вещи, к сожалению, он выдает ошибку). #include <stdexcep…
29 июл '17 в 04:06
3
ответа
Явная специализация шаблона - несколько определений
Я сделал явные специализации раньше, я просто не могу понять, почему это не работает: StringUtils.hpp #ifndef AYC_STRINGUTILS_HPP #define AYC_STRINGUTILS_HPP #include <string> class StringUtils { public: template <typename T> static std:…
06 дек '18 в 22:24
1
ответ
Нормальная функция не перезаписывает шаблонную функцию
Я должен использовать внешнюю библиотеку, но получаю "ошибку множественного определения" из следующей функции шаблона и ее явной специализации, если ее вызывают с помощью std::string. template <typename T> void foo(T& value); template <…
20 сен '10 в 19:45
2
ответа
Как обеспечить явную специализацию только для одного метода в шаблонном классе C++?
У меня есть шаблон класса, который выглядит примерно так: template<class T> class C { void A(); void B(); // Other stuff }; template<class T> void C<T>::A() { /* something */ } template<class T> void C<T>::B() { /* some…
26 сен '09 в 17:20
0
ответов
Шаблон специализирующей функции на initializer_list не работает?
Я знаю, что специализировать шаблоны функций неправильно Этот вопрос вне любопытства. скажи у меня есть шаблон функции template<typename T> void foo(T){} и я специализируюсь на этом template<> void foo(std::initializer_list<int>){}…
22 янв '14 в 14:24
0
ответов
Явная специализация членов шаблонов классов
Пытаясь закрепить логику явной специализации членов шаблонов классов, я написал следующий код: #include <iostream> using namespace std; template<class T> class X { public: template<class U> class Y { public: template<class V>…
21 янв '14 в 16:23
6
ответов
Выбор явной специализации класса на основе производного типа
Привет у меня проблемы с выбором правильной версии шаблонного класса, который имеет явную специализацию. Я хочу выбрать специализацию, используя производный класс класса, используемого для специализации. Сценарий таков: #include <stdio.h> clas…
22 янв '10 в 16:38
2
ответа
"ожидаемый инициализатор до '<' токена" при попытке специализации члена шаблона
Я пытаюсь определить элемент шаблона внутри класса шаблона. Вот фрагмент заголовочного файла: template <typename Type> class Queue { private: // class scope definitions // Node is a nested structure definition local to this class struct Node {…
09 сен '12 в 12:05
1
ответ
Явная специализация 'CheckIntMap<>' после создания
template<typename... U> constexpr int CheckIntMap(const char *szStr, int nDefaultInt, const char *szOptStr1, int nOptInt1, U&&... u) { return (CheckIntMap(szStr, nDefaultInt, szOptStr1, nOptInt1) == nOptInt1) ? nOptInt1 : CheckIntMap(s…
22 дек '17 в 08:29
1
ответ
Статическое определение шаблона и явные ошибки конкретизации специализации в MSVC
Мне интересно, почему следующий код прекрасно работает в gcc #include <iostream> using namespace std; template<typename T> struct F { static T const value; }; template<> struct F<int> { // Specialization static int const valu…
20 июн '14 в 18:40