Форум программистов, компьютерный форум 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; или для простоты подробнее

Показать сообщение отдельно
Gorillych
14 / 14 / 1
Регистрация: 04.07.2013
Сообщений: 76
29.07.2013, 19:01  [ТС]
Если кому интересно - ниже реализация гетерогенного контейнера, наподобие boost::any. Можно обходить элементы контейнера наподобие массивам, но в компайл-тайме:
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
namespace static_iterator
{
    template <int... Idx>
    struct index { };
 
    template <int N, int... Idx>
    struct sequence : sequence<N - 1, N - 1, Idx...> { };
 
    template <int... Idx>
    struct sequence<0, Idx...> : index<Idx...> { };
}
 
 
 
struct A {void prnt(){std::cout<<"A\n";} };    
struct B {void prnt(){std::cout<<"B\n";} };    
struct C {void prnt(){std::cout<<"C\n";} };
 
template<typename...Arg>
class HeterogenousContainer
{
public:
    HeterogenousContainer() : 
            number_elems(sizeof...(Arg)), 
            elements(std::make_tuple(Arg()...)){}
 
    std::tuple<Arg...> elements;
 
    template <int... Idx>
    void process(static_iterator::index<Idx...>)
    {
         auto aux = { (std::get<Idx>(elements).prnt(), 0) ... };
    }
 
    void process()
    {
        process(static_iterator::sequence<sizeof...(Arg)>());
    }
    
    unsigned int get_number_elements(){return number_elems;}
    
private:
    unsigned int number_elems;
};
int main()
{  
    HeterogenousContainer<A,B,C,A,A,B,C,B,B,C> obj;
    obj.process();
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru