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

реализация foreach в C++, другой синтсксис - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ./massdown: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./massdown) http://www.cyberforum.ru/cpp/thread98890.html
всем хай! собираю свою программу на новом железе х86_64 долго не получалось скомпилить. при линковке получал вот такое сообщение: relocation R_X86_64_32 against `a local symbol' я так понял,...
C++ operator [что попало] Кто пользуется перегрузками типа class TPoint {public: double x,y,z;} class B {public: operator operator (TPoint);}, class B {public: operator operator (char *c}...? http://www.cyberforum.ru/cpp/thread98882.html
C++ Стандарт
Нашел в сети стандарт c++. Добавлено через 7 минут И ещё PDF о различиях стандартов. Не знаете, есть ли стандарт на русском? Где? Гугол дал те ссылки, которые я привёл в этом посте + ссылки на...
Запреты C++
1. Можно ли запретить: 1.1. Создание локальных экземпляров класса, 1.2. Создание динамических экземпляров класса? 2. Если можно, то как запретить: 2.1. Создание локальных экземпляров класса,...
C++ Можно ли создать глобальный обект, вызвав для него закрытый конструктор? http://www.cyberforum.ru/cpp/thread98532.html
Можно ли создать глобальный объект, вызвав для него закрытый конструктор? Как?
C++ Конструктор с параметром-объектом class a { private: ... public: a (); ... }; class b { подробнее

Показать сообщение отдельно
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
27.02.2010, 14:24
Цитата Сообщение от Aye Aye Посмотреть сообщение
rangerx, если обычный макрос...
Чтобы в этом убедиться достаточно поковыряться в foreach.hpp. Сам BOOST_FOREACH занимает 10-15 строк кода. Всё остальное, как уж было сказано: "...чтобы работало везде, где только можно..."

Цитата Сообщение от Aye Aye Посмотреть сообщение
то этот подход называется мета программирование?
В принципе да. Т.е. препроцессор можно отнести к этому понятию.

Добавлено через 12 минут
Цитата Сообщение от Aye Aye Посмотреть сообщение
что бы можно было писать блок операторов после неё, который бы имел к ней прямое отношения, я даж не знаю как выразиться (((
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
#include <iostream>
 
#define foreach(new_var, array)\
        for(size_t index = 0; index < (sizeof(array)/sizeof(*array)); ++index)\
            for(new_var = array[index], flag = 1; flag; flag = 0)
 
int main()
{
    int int_arr[] = {9,8,7,6,5,4,3,2,1};
    foreach(int variable, int_arr)
    {
        std::cout << variable << ' ';
    }
 
    std::cout << std::endl;
 
    char char_arr[] = {'a','b','c','d','e','f','g'};
    foreach(char variable, char_arr)
    {
        std::cout << variable << ' ';
    }
 
    std::cout << std::endl;
 
    char* pchar_arr[] = {"one","two","three"};
    foreach(char* variable, pchar_arr)
    {
        std::cout << variable << ' ';
    }
 
    return 0;
}
В качестве примера думаю сойдёт.
10
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru