Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Добавление текста в массив https://www.cyberforum.ru/ cpp-beginners/ thread1692093.html
Есть массив на 80 ячеек (char), в него записано на две-три (без разницы), и необходимо вплотную к записанному дописать некоторые символы. Заранее благодарен.
Гномья сортировка (массивы) C++
Помогите написать программу "гномьей сортировки".
C++ Как добавить паузу перед завершением программы? https://www.cyberforum.ru/ cpp-beginners/ thread1692075.html
#include "stdafx.h" #include <stdio.h> /* печать таблицы температур по Фаренгейту и Цельсию для fahr = 0, 20, ..., 300 */ int main() { int fahr, celsius; int lower, upper, step;
C++ Удалить столбец из матрицы https://www.cyberforum.ru/ cpp-beginners/ thread1692061.html
Ввести матрицу размером m на n и число k. Удалить k-й столбец из матрицы. Вывести полученную матрицу
C++ Почему не работает Сортировка выбором?
Не понимаю, почему не работает данный код. Был бы очень благодарен, если бы кто-нибудь объяснил PS: Готовые решения, пожалуйста, не кидайте, для этого я бы сюда не писал. #include <iostream> #include <cstdio> #include <ctime>
C++ Как ограничить длину вводимой строки? https://www.cyberforum.ru/ cpp-beginners/ thread1692047.html
Короче, есть задачка: Напишите программу на "родном" С++, которая читает с клавиатуры число (целое) и имя (до 15 символов). Спроектируйте программу так, чтобы данные вводились в одной функции, а выводились в другой. Сохраняйте данные в главной программе. Программа должна завершаться, когда пользователь введет число 0. Подумайте о том, как передавать данные между функциями - по значению, по...
C++ Сфоpмиpовать массив из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки (BorlandC++) https://www.cyberforum.ru/ cpp-beginners/ thread1692033.html
Как сделать задание "Дан массив А pазмеpом m*n. Сфоpмиpовать массив NS из номеpов столбцов, в котоpых находятся минимальные элементы каждой строки. " У меня есть подобный код : #include<stdio.h> #include<conio.h> void main() { const N=2,M=3; /*размерность масcива А*/ static int A; int B,C; /*описание масcивов А,В,С*/ int MAX ; int I,J;
C++ Создать каталог организаций города и отсортировать по названию
Создать каталог организаций города (динамический массив) и отсортировать по названию ( friend - функция). Помогите пожалуйста #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; class organization {
C++ Даны два массива. Сформируйте массив С, состоящий из общих элементов массива А и В https://www.cyberforum.ru/ cpp-beginners/ thread1691995.html
Даны два массива: массив А из n элементов и массив В из m элементов. Сформируйте массив С, состоящий из общих элементов массива А и В. Для формирования массива С напишите функцию с использованием указателей.
C++ Перегрузка "+" в классе матрица Добрый вечер При сложении двух матриц, прибавляет только 1 рядок обоих, остальные не изменяет. Помогите пожалуйста найти ошибку в коде: #include <iostream> using namespace std; class Matrix { protected: int element; https://www.cyberforum.ru/ cpp-beginners/ thread1691984.html
При вводе данных программа пропускает операции cin C++
Описать структуру с именем note, содержащую следующие поля:  фамилия, имя;  номер телефона;  дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия:  ввод с клавиатуры данных в массив, состоящий из максимум 8 элементов типа note, причем сделать возможность прервать ввод, чтобы можно было не вводить все 8 элементов; после окончания ввода отсортировать...
C++ Функция преобразующая данные исходного файла в текстовый файл Всем привет. задание на картинке. Все сделал( записывает в двоичный и считывает потом), выводит, но вот с переводом из двоичного в текстовый получается фигня, все символы, что были в двоичном перекочевали в текстовый. Вот это вид двоичного, а текстовый такой же, подскажите пожалуйста в чем проблема может быть. заранее спасибо void PrintAllTovarintxt() { char ch; ifstream in(ADRESS,... https://www.cyberforum.ru/ cpp-beginners/ thread1691936.html
18472 / 9629 / 2356
Регистрация: 30.01.2014
Сообщений: 16,881
23.03.2016, 10:29 0

Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа - C++ - Ответ 8921688

23.03.2016, 10:29. Показов 2437. Ответов 5
Метки (Все метки)

Ответ

SP_root, невнимательноть банальная. У тебя специализации и основная шаблонная функция имеют разные имена.
Таким образом у тебя есть два пути:
* Оставлять специализации в cpp (при этом обязательно убрать у них inline).
* Вынести их в заголовочный файл, inline при этом необходимо оставить.

Пример:
Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <set>
#include <cassert>
 
class A;
class B;
class C;
 
 
typedef std::set<A*> ASet;
typedef std::set<B*> BSet;
typedef std::set<C*> CSet;
 
class SelectionManager
{
protected:
    ASet   as_;
    BSet   bs_;
    CSet   cs_;
 
public:
    template <typename TContextRepresented>
    std::set<TContextRepresented *> * getSelectionPtr()
    {
        return 0;
    }
};
 
template <>
inline ASet * SelectionManager::getSelectionPtr()
{
    return &as_;
}
template <>
inline BSet * SelectionManager::getSelectionPtr()
{
    return &bs_;
}
template <>
inline CSet * SelectionManager::getSelectionPtr()
{
    return &cs_;
}
 
int main()
{
    SelectionManager sm;
 
    ASet * pas = sm.getSelectionPtr<A>();
    assert(pas != 0);
 
    BSet * pbs = sm.getSelectionPtr<B>();
    assert(pbs != 0);
 
    CSet * pcs = sm.getSelectionPtr<C>();
    assert(pcs != 0);
 
    std::set<int*> * pds = sm.getSelectionPtr<int>();
    assert(pds == 0);
}
Онлайн тест: http://rextester.com/XEUQ44982

Почитать можно в книге "Шаблоны C++. Справочник разработчика."

Вернуться к обсуждению:
Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2016, 10:29
Готовые ответы и решения:

Явная специализация метода для типа шаблонного класса
Добрый вечер, уважаемые знатоки! :) Хочу задать вопрос по созданию шаблонов. В общем, пусть у меня...

Создать переменную типа, хранящегося в переменной типа Type
Здравствуйте. Гугл не помог, потому обращаюсь за помощью к вам. Пишу загрузку (не важно чего) из...

Можно ли присвоить объекту основного типа значение объекта пользовательского типа?
Правильно ли я понимаю, что SomeClass obj; int x = obj; или SomeClass obj; int x = 5 +...

Предполагается ли в C# синтаксис для создания переменной того типа, который указан в переменной Type type
Как это мне представляется: Type type = new double().GetType(); type a = 3.2; type b = 4.1;...

5
23.03.2016, 10:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2016, 10:29
Помогаю со студенческими работами здесь

Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса?
ребят, только учусь и конечно, вопросов возникает много. ситуация вот в чем. есть массив. я должна...

Как можно определить что-то типа процедурного типа или классового метода (как в Delphi)?
Подскажите: как можно определить что-то типо процедурного типа или классового метода(как в...

Передать массив элементов(типа int) объекта, в функцию из массивов(типа int)
Представьте такую ситуацию. Есть у вас массив чисел: Mass И вы хотите передать его в функцию. Я...

Условие типа if( масив типа char[x] [y] != переменная типа char) не срабатывает
Создал функцию ChangeWay(). Все, кроме if(map !=ar) (обе переменные типа char) работает...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru