Ошибка в значении параметра по умолчанию [Ошибка в Visual C ++ 2008?]

Я столкнулся со следующей проблемой при попытке использовать шаблон в моем коде

У меня есть код на C ++, который я вызываю из C-функций.

Проблема в том, что я получаю разные значения в следующем коде для операторов 1 и 2.

Type id : unsigned int
statement 1 : 4
statement 2 : 1

Код C ++:

template <typename T>
void func(T* value, unsigned int len = sizeof(T)) {
cout << "Type id : " << typeid(T).name() << endl;
cout << "statement 1 " << sizeof(T) << endl;
cout << "statement 2 " << len << endl;
}

template <typename T>
void func1(T data) {
T val = data;
func(&val);
}void test(void *ptr, unsigned int len) {
switch(len) {
case 1:
func1(*(static_cast<uint32_t *>(ptr))
break;
}
}

Это происходит только на окнах. На линуксе работает нормально.

3

Решение

Я получаю 4,4. Вам может понадобиться установленный SP

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector