Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 1
Регистрация: 17.12.2013
Сообщений: 58
1

Ошибка при специализации шаблона

02.01.2015, 22:35. Показов 780. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу:
C++
1
2
3
4
5
6
7
8
9
10
template <>
struct Test < int> {
    Test(int x)
            :x(x)
    {}
    int Cout () {
        cout << "Bool";
    }
    int x;
};
Получаю ошибку, что класс Тест не шаблонный.
error: 'Test' is not a class template

Что я не так делаю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2015, 22:35
Ответы с готовыми решениями:

Извлечь тип из специализации шаблона
template&lt;class T&gt; class cl { public: T t; cl(){ type t2; } }; ...

О специализации шаблона: почему код компилируется?
Добрый день. Вроде бы, по правилам специализации шаблонов, можно только уточнять поведение...

Ведет ли к инстанцированию определение явной специализации шаблона функции?
сабж ясен из заголовка

Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа
Доброго времени суток, пишу класс содержащий несколько std::set от разных типов, нужно сделать...

3
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
02.01.2015, 22:38 2
Не хватает объявления самого шаблона. Например:
C++
1
2
template <typename T>
struct Test;
1
Эксперт С++
8971 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
02.01.2015, 22:42 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;
 
 
template <class T>
struct Test;
 
template<>
struct Test<bool> 
{
    
    Test(const bool x)
        :x(x)
    {}
    
    void Cout ()const { cout << "Bool"; }
    
    bool x;
};
 
int main()
{
    std::cout << "Hello, world!\n";
    
    Test<bool>(true).Cout();
}
1
2 / 2 / 1
Регистрация: 17.12.2013
Сообщений: 58
02.01.2015, 22:50  [ТС] 4
Спасибо.
Имел объявленный типа
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <class X>
struct Test {
 
    Test(X x)
            :x_(x)
    {}
 
    X Cout () {
        return x_;
    }
    X x_;
};
Но он был ниже по коду, не написано об этой особенности в материале...
0
02.01.2015, 22:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2015, 22:50
Помогаю со студенческими работами здесь

Ошибка определения специализации шаблонного класса
На этом месте вылазит ошибка: Error 1 error C3413: 'MyClass&lt;int&gt;' : invalid explicit instantiation ...

Multiple definition при специализации функции
Кто может объяснить, почему в этом коде multiple definition для void foo&lt;Test&gt;(Test const&amp;) ?...

Ошибка при попытке создания шаблона
В чём ошибка? Функции Map::isGardenWithoutWallFlag, Map::setNothing, Map::incrementRoad,...

При использовании шаблона, ошибка с десткрутором
Задание сделать шаблон класса список. Сделал сам список, и добавление элемента и тестовый класс...

Ошибка при использованием Шаблона структуры в классе
Добрый день. У меня возникла проблема. При использовании шаблона структуры в классе компилятор...

Ошибка компиляции при реализации класса-шаблона
Не могу понять почему компилятор ругается. Помогите разобраться. #include &lt;iostream&gt; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru