Функция С Переменным Числом Параметров Зараннее Неизвестного Типа

Meridian

New member
24.11.2014
1
0
#1
Здравствуйте, коллеги!
Прошу помочь начинающему в С++. Есть функция с переменным числом параметров заранеее неизвестного типа.
Внутри начинаю перебирать параметры по ссылке и на первом же неопределенном получаю проблему с типом float.
Вот код:

C++:
#include "stdafx.h"
#include <iostream>
#include <clocale>

using namespace std;

template <class ttype>
void testfun(ttype var1, ttype var2, ...)
{
ttype lvar1 = var1;
ttype lvar2 = var2;
cout << "Локальные переменные lvar - " << lvar1 << ", lvar2 -" << lvar2 << endl;

ttype *ptr = &var1;
cout << "Через ссылку первый аргумент " << ttype(*ptr) << endl;

ptr++;
cout << "Через ссылку второй аргумент " << ttype(*ptr) << endl;

ptr++;
cout << "Через ссылку третий аргумент " << ttype(*ptr) << endl;
}

void main()
{
setlocale(LC_ALL, "Russian");

float a, b, c;

a = 0.1;
b = 0.2;
c = 0.3;

testfun(a, b, c);

system("pause");
}
Вывод:
Локальные переменные lvar - 0.1, lvar2 -0.2
Через ссылку первый аргумент 0.1
Через ссылку второй аргумент 0.2
Через ссылку третий аргумент 2
Для продолжения нажмите любую клавишу . . .

Третий параметр должен принимать значение 0.3, но это не так. Если на вход подавать переменные
типа double, то проблемы нет. Подозреваю, что проблема кроется в размерности типа float, но не могу
ее преодолеть. Help.