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

Инициализация std::tuple переменным числом аргументов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение строки http://www.cyberforum.ru/cpp-beginners/thread930112.html
Помогите пожалуйста! Пытаюсь считать 30-ю строку из файла, но вместо русских символов каракули... Вроде с wchar'ом работаю... ... FILE *stream; wchar_t* line = new wchar_t(); bool er = false; ...
C++ sort и stable_sort читаю: stable_sort sorts the elements in the range [first,last) into ascending order, like sort, but stable_sort preserves the relative order of the elements with equivalent values. непонятно:... http://www.cyberforum.ru/cpp-beginners/thread930087.html
C++ Как вызвать метод родительского класса;
Собственно вопрос; Есть класс a и b; Класс b унаследован от класса a; И как теперь из класса b вызвать функцию класса a;
C++ Ошибка error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден
Объясните, пожалуйста, как исправить эту проблему? У меня Visual Studio 2010 Ultimate
C++ Передача аргументов функции http://www.cyberforum.ru/cpp-beginners/thread930063.html
В книге Стенли Липпмана C++ Primer дошел до программы, которая выполняет замену слов в одном файле, которые указаны в другом. Например, thx thanks 4 for u you w8 wait pls please - 1 файл,...
C++ Векторы Добрый день форумчане! обнаружил что вектор можно объявить следующим образом : vector<MyClass *,MyClass2 *> vector_name; или для простоты подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.07.2013, 01:41
только для типов с constexpr конструтором
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <tuple>
 
template<typename... Args>
struct default_tuple_creator;
 
template<class T, typename... Args>
struct default_tuple_creator<T, Args...>
{
    static constexpr std::tuple<T, Args...> value = std::tuple_cat(std::make_tuple(T()), default_tuple_creator<Args...>::value);
};
 
template<class T>
struct default_tuple_creator<T>
{
    static constexpr std::tuple<T> value = std::make_tuple(T());
};
 
template<typename... Args>
std::tuple<Args...> default_constructed_tuple()
{
    return default_tuple_creator<Args...>::value;
}
 
template<typename... Args>
struct Base
{
    Base() 
    : mems(default_constructed_tuple<Args...>())
    , NumElems(sizeof...(Args))
    {}
    
    std::tuple<Args...> mems;
    int NumElems;
};
 
struct A 
{ 
    int a;  
    
    constexpr A() : a(100) {}
};
 
struct B 
{
    int b;
    
    constexpr B() : b(50) {}
};
 
struct C 
{
    int c;
};
 
 
int main()
{
   Base<A, B, C> obj;
 
   std::cout << std::get<0>(obj.mems).a 
             << std::get<1>(obj.mems).b 
             << std::get<2>(obj.mems).c 
             << std::endl;
    
   return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru