Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
1

Не понятный undefined reference to `unsigned long long f<unsigned long long, void>

06.01.2015, 06:55. Просмотров 1342. Ответов 6
Метки нет (Все метки)


test.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
template <typename FormalType, typename FactType = typename std::enable_if<std::is_same<FormalType, uint64_t>::value>::type>
        uint64_t                              f                                                     (      FormalType               x                  ,
                                                                                                           FormalType               y                  );
int main()
{
 uint64_t x;
 uint64_t y;
 uint64_t z;
 z=f(x, y);
 return 0;
}
f.cpp:
C++
1
2
3
4
5
6
7
#include <iostream>
template <typename FormalType, typename FactType = typename std::enable_if<std::is_same<FormalType, uint64_t>::value>::type>
        uint64_t                              f                                                     (      FormalType               x                  ,
                                                                                                           FormalType               y                  )
{
 return x;
}
, пишет:
C:\Projects\Test2\Test\Test.cpp|10|undefined reference to `unsigned long long f<unsigned long long, void>(unsigned long long, unsigned long long)'|
.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2015, 06:55
Ответы с готовыми решениями:

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в...

Меняется ответ при приведении функции pow к unsigned long long
Тест: 50 50 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

Быстрое вычисление наибольшего общего делителя для unsigned long long int
Даны два числа типа unsigned long long int, в них могут оказаться любые представимые значения,...

Перевести long long unsigned int в массив char
Подскажите, пожалуйста, как превратить число типа long long unsigned int в массив символов? Каждый...

6
Don't worry, be happy
16968 / 9849 / 1897
Регистрация: 27.09.2012
Сообщений: 24,420
Записей в блоге: 1
06.01.2015, 07:07 2
Раздельная компиляция с шаблонами не прокатит. Используемый код шаблона должен быть доступен в том месте, где будет инстанцирование.
0
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
06.01.2015, 07:22  [ТС] 3
А как же быть?
0
Don't worry, be happy
16968 / 9849 / 1897
Регистрация: 27.09.2012
Сообщений: 24,420
Записей в блоге: 1
06.01.2015, 07:25 4
Можете включить файл f.cpp в test.cpp
C++
1
#include "f.cpp"
Можете поменять расширение при желании. Естественно, указывать f.cpp для компиляции не нужно.
0
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
06.01.2015, 07:28  [ТС] 5
А если вызывать надо из десяти файлов? Сколько экземпляров кода функции будет при инкладе во все 10?
0
Эксперт С++
1663 / 1035 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
06.01.2015, 11:02 6
Компилятор не дурак и умеет выкидывать дублирующиеся инстанциации (а также незаинлайненные inline-функции).
1
4197 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
06.01.2015, 11:13  [ТС] 7
Значит версия будет одна? Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2015, 11:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работа с unsigned long long int на 32-битных системах
В программе испольуется тип данных unsigned long int, но в некоторых (хотя и очень редких) случаях...

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

Как преобразовать char[8] к unsigned long long?
Требуется выполнить преобразование char к unsigned long long и обратно

Тип unsigned long long
Добрый день. У меня возник вопрос: Почему в результате выполнения программы выводится число: -1?...


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

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

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