Russian Qt Forum
Ноябрь 22, 2024, 19:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Раздельная компиляция  (Прочитано 8252 раз)
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« : Июнь 11, 2005, 11:17 »

Есть файлик

my_func.cpp

Код:
R my_func.cpp(R a)
{
 return a*3.0;
}


Хочется сделать float и double версию этой функции, причем не хочется плодить еще 1 файл.

Решение нашел пока такое:

my.cpp

Код:
#define R float
#include "my_func.cpp"
#define R double
#include "my_func.cpp"


Есть ли еще решения этой проблеммы?
Записан
lepsai
Гость
« Ответ #1 : Июнь 11, 2005, 11:47 »

ну товарищ, ты даёшь Улыбающийся

template<typename T> T MyFunc(const T & a)
{
return 3.0*a;
}

double calc = MyFunc<double>(10);
int calc2 = MyFunc<int>(10);
....
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Июнь 11, 2005, 12:55 »

ага, тоже вариант, только придется кучу кода переписывать

а еще способы есть?
Записан
lepsai
Гость
« Ответ #3 : Июнь 11, 2005, 13:08 »

не, другиx вариантов нет: шаблоны или typedef

Код:

#ifdef _USE_FLOAT
typedef float value_type
#else
#ifdef _USE_DOUBLE
typedef double value_type
#endif
#else
#error value type undefined
#endif
#endif


value_type MyFunc(const value_type & a);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.