Форум программистов, компьютерный форум CyberForum.ru

Распаковка parameter pack в наследуемых типах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Неизвестный тип DATE http://www.cyberforum.ru/cpp/thread1575195.html
Приветствую! Пытаюсь собрать пример внешней компоненты для 1С в среде Microsoft Visual C++ 2008 Express edition, научился компилировать dll файл, но знаний по С пока маловато, застрял на примитиве, не оказалось известного типа DATE. Проявляется это ошибкой c:\1c\oo1c\include\types.h(147) : error C2146: syntax error : missing ';' before identifier 'date' если комментировать строчку то проект...
C++ Как в Visual Studio писать на чистом C++ без использования фреймворка? Вообщем читал я Зиборова программирование под Визуал студио 2010 в среде .NET И тут понял что мне Выплеснули ведро говна в лицо это не нужно, моя приложения не запускаются ни на виртуалкке, ни на старом компе требуя Framework 4.0.3... Когда я при создании приложения пытаююсь поставить фраимворк 2.0 выводит: error MSB8009: .NET Framework 2.0/3.0/3.5 задают набор инструментов платформы v90.... http://www.cyberforum.ru/cpp/thread1574225.html
Поиск литературы по C++ C++
Доброго времени суток! Помогите найти литературу по следующий аспектам, желательно которую можно купить в печатном виде: 1. STL (ЭТО САМОЕ СЕЙЧАС НУЖНОЕ) 2. MFC 3. Библиотека boost 4. MySql для си++ 5. Win API Книги желательно с большим количеством примеров и наиболее современные.
Клик мыши в неактивном окне C++
Открыто окно Opera, свёрнут Google Chrome Мы запускаем программу, которая должна кликнуть по координатам x, y в свёрнутом окне Google Chrome на вкладке "Яндекс" (x=512, y=478, на моём экране там обычно находится рекламный блок, при этом окна переключаться не должны. Пробовал так: HWND hw = FindWindow (0, L"Яндекс"); SendMessage (hw, WM_LBUTTONDOWN, 512, 478); SendMessage (hw, WM_LBUTTONUP,...
C++ Промоделировать падения тела с заданными характеристиками (масса, форма) http://www.cyberforum.ru/cpp/thread1573390.html
Промоделировать падения тела с заданными характеристиками (масса, форма) в различных вязких средах. Изучить влияние вязкости среды на характер движения. Скорость движения должна быть столь невелика, чтобы квадратичной составляющей силы сопротивления можно было пренебрегать.
Visual C++ Написать программу на С++ используя WTL и CDHTMLDIALOG Требуется написать программу на С++ используя WTL и CDHTMLDIALOG. Программа представляет из себя окно с кнопкой, которая запускает прогресс бар. подробнее

Показать сообщение отдельно
DiffEreD
 Аватар для DiffEreD
1424 / 761 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
10.11.2015, 14:54     Распаковка parameter pack в наследуемых типах
Есть класс наследуемый от переменного количества типов. Я не могу понять как можно сделать распаковку списка параметров с доступом к функции-члену. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <utility>
 
struct A {int val; void foo() const {std::cout << val;}};
struct B {int val; void foo() const {std::cout << val;}};
struct C {int val; void foo() const {std::cout << val;}};
struct D {int val; void foo() const {std::cout << val;}};
 
template <typename ... Types>
struct Test : public Types ...
{
   Test() = default;
   Test(Types&& ...args) : Types(std::forward<Types>(args))... {}
 
   void print() const
   {
      Types::foo()...;
   }
 
};
 
int main()
{
   Test<A, B, C, D> t{{1}, {2}, {3}, {4}};
   t.print();
}
Ошибка:
Bash
1
2
3
 ошибка: parameter packs not expanded with '...':
       (Types::foo())...;
                        ^

Как такое можно реализовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru