Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> шаблон с переменным числом параметров, компилятор ругается 
V
    Опции темы
neosapient
Дата 11.11.2013, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



Здравствуйте.

Помогите разобраться, почему не могу скомпилировать тестовый пример:
Код

#pragma once

template  <typename ... Params>
struct dummy
{
    std::tuple<Params ...> data;
};

Код

#include "dummy.hpp"

int main(int argc, char* argv[])
{
    dummy<int, __int64, float, double> test;
    return 0;
}


Компилятор выдает ошибки
Код

1>  main.cpp
1>c:multiparams\dummy.hpp(3): error C2143: syntax error : missing ',' before '...'
1>c:\multiparams\dummy.hpp(6): error C2143: syntax error : missing ';' before '<'
1>          c:\multiparams\dummy.hpp(7) : see reference to class template instantiation 'dummy<__formal>' being compiled
1>c:\multiparams\dummy.hpp(6): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\multiparams\dummy.hpp(6): error C2238: unexpected token(s) preceding ';'
1>c:\multiparams\main.cpp(6): error C2977: 'dummy' : too many template arguments
1>          c:\multiparams\dummy.hpp(5) : see declaration of 'dummy'
1>c:\multiparams\main.cpp(6): error C2133: 'test' : unknown size
1>c:\multiparams\main.cpp(6): error C2512: 'dummy' : no appropriate default constructor available


Использую Visual Studio Ultimate 2012 SP3

Прикрепил пример к посту.

Это сообщение отредактировал(а) neosapient - 11.11.2013, 12:54

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  multiparams.zip 1,92 Kb
PM MAIL   Вверх
vinter
Дата 11.11.2013, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата

Visual Studio Ultimate 2012 SP3

Чтобы использовать Variadic templates на этой студии нужно установить November CTP
Но знай, что там багов полный мешок. Поэтому если есть возможность, то нужно использовать MSVC2013(не то чтобы там не было багов, но там их меньше smile


--------------------
Мой блог
PM MAIL WWW   Вверх
neosapient
Дата 11.11.2013, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



vinter, спасибо!

Ох уж эта студия - второй раз за месяц приходиться патчить.
1) Дружит ли патч с флагом Visual Studio 2012 - Windows XP (v110_xp) сборки программ для WinXP и Win2003?

2) Что-нибудь слышно, когда M$ обещают патч с меньшим количеством багов? а то 2014 год на носу.
PM MAIL   Вверх
vinter
Дата 11.11.2013, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Патча не будет, есть 2013 студия(скоро уже CTP для 2013 будет). Я думаю, что с XP это не будет работать. Это альфа версия компилятора из 2013 студии.


--------------------
Мой блог
PM MAIL WWW   Вверх
neosapient
Дата 11.11.2013, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



Пропатчил студию.
Попробовал собрать с флагом по умолчанию Microsoft Visual C++ Compiler Nov 2012 CTP (v120_CTP_Nov2012)
Компилятор осилил Variadic templates )

Программы успешно стартует под Win7
А вот под Win2003 вылезет окошко с ошибкой вида: "программа не является Win32 приложением".

Увы,  важна поддержка платформы Win2003 в текущем проекте, поэтому попробую переписать без этой плюшки.

vinter, спасибо!

+


PM MAIL   Вверх
DarthTon
Дата 11.11.2013, 17:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 7.2.2009

Репутация: 1
Всего: 6



В 2013й студии есть тулчейн Visual Studio 2013 - Windows XP (v120_xp).
PM MAIL   Вверх
neosapient
Дата 11.11.2013, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 16.8.2006

Репутация: нет
Всего: 4



DarthTon, спасибо.
PM MAIL   Вверх
vinter
Дата 11.11.2013, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



neosapient, на будущее: любая студия, пока не обозначено обратное, так или иначе поддерживает XP(народная воля). CTP это типо альфа версии следующего поколения компилятора. Естественно никто не морочит себе голову с CTP для XP.


--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.