Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bazleks
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 2
#1

Extern templates. Ссылка на неразрешенный внешний символ - C++

07.04.2014, 02:37. Просмотров 386. Ответов 3
Метки нет (Все метки)

Не могу разобраться, что такое. Создал 3 файла, первый содержит в себе main, второй содержит объявление функции с использованием enum и template, а третий содержит реализацию. Но компилятор кидает ошибку(MSVS 2013): ссылка на неразрешенный внешний символ. Подскажите как исправить?
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
// файл main.cpp -----------------
#include "header.h"
int main() {
    int a = 10;
    setNumber(a);
}
// файл header.h -----------------
template <typename T>extern void setNumber(T &number);
 
// файл realisation.cpp -----------------
template <typename T>void setNumber(T &number) { }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2014, 02:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Extern templates. Ссылка на неразрешенный внешний символ (C++):

Ссылка на неразрешенный внешний символ - C++
Ссылка на неразрешенный внешний символ _main в функции ____tmainCRTStartup В чем проблема?? #include &quot;stdafx.h&quot; #include...

Ссылка на неразрешенный внешний символ - C++
Строка 36 PathStripToRoot(szRoot); Вызывает ошибки: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

Ссылка на неразрешенный внешний символ - C++
Ошибки: 1&gt;Щербаков 2.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;public: __thiscall matrix&lt;int&gt;::~matrix&lt;int&gt;(void)&quot;...

Ссылка на неразрешенный внешний символ - C++
//Структура пользователя программой struct User { char* Login; char* Password; }; //Массив пользователей User Array;

Ссылка на неразрешенный внешний символ - C++
Здравствуйте, мне нужна ваша помощь, уже час бьюсь но не могу решить данную проблему. Вообщем, суть задания - записать в функцию...

Ссылка на неразрешенный внешний символ - C++
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ &quot;void __cdecl phyRestoreConsoleAttributes(void)&quot;...

3
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4611 / 694
Регистрация: 29.11.2010
Сообщений: 12,620
07.04.2014, 03:30 #2
Точка инстанцирования шаблонных функций и классов должна быть в хедерах (реализацию в .h запихните и ок).
0
bazleks
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 2
07.04.2014, 09:05  [ТС] #3
есть необходимость реализацию шаблонных функций хранить в отдельном cpp, можно ли как-то добиться этого?
0
DrOffset
7377 / 4454 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
07.04.2014, 09:08 #4
bazleks, нельзя. Разве только явно инстацировать все многообразие типов, которые могут понадобиться. Только в этом случае польза от шаблона сомнительна.
0
07.04.2014, 09:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2014, 09:08
Привет! Вот еще темы с ответами:

Ссылка на неразрешенный внешний символ - C++
Базовый класс - class area_cl{ public: int a,b; double height; //высота double wight; ...

Ссылка на неразрешенный внешний символ - C++
Приветствую. Проблема - при компиляции появляется ошибка вида: error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl...

Ссылка на неразрешенный внешний символ - C++
Identification_Organisation.h: #pragma once #include&lt;string&gt; using namespace std; class Main_Organisation { int...

Ссылка на неразрешенный внешний символ - C++
Разбил 3 работающих класса на .h и .cpp файлы. List: шаблонный список. Никаких других классов не включает. Material: Включает только...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.