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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ operator [что попало] http://www.cyberforum.ru/cpp/thread98882.html
Кто пользуется перегрузками типа class TPoint {public: double x,y,z;} class B {public: operator operator (TPoint);}, class B {public: operator operator (char *c}...?
C++ Стандарт Нашел в сети стандарт c++. Добавлено через 7 минут И ещё PDF о различиях стандартов. Не знаете, есть ли стандарт на русском? Где? Гугол дал те ссылки, которые я привёл в этом посте + ссылки на новости и обсуждения. http://www.cyberforum.ru/cpp/thread98858.html
C++ Перегрузка new
Дайте примеры на перегрузку. #define n ... // Некая целая константа class a { ... }; // Некий класс a *p=new a; // Здесь должен быть вызван перегруженный оператор. Как его перегрузить и где? a *p=new a; // Здесь должен быть вызван перегруженный оператор. Как его перегрузить и где?. Добавлено через 1 час 44 минуты class a { protected:
Запреты C++
1. Можно ли запретить: 1.1. Создание локальных экземпляров класса, 1.2. Создание динамических экземпляров класса? 2. Если можно, то как запретить: 2.1. Создание локальных экземпляров класса, 2.2. Создание динамических экземпляров класса? Требуется что-то такое написать, после чего #define n ... // некая целая константа class a { ...}; // Некий класса, a obj1; // можно
C++ Можно ли создать глобальный обект, вызвав для него закрытый конструктор? http://www.cyberforum.ru/cpp/thread98532.html
Можно ли создать глобальный объект, вызвав для него закрытый конструктор? Как?
C++ Конструктор с параметром-объектом class a { private: ... public: a (); ... }; class b { подробнее

Показать сообщение отдельно
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
27.02.2010, 14:24     реализация foreach в C++, другой синтсксис
Цитата Сообщение от 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;
}
В качестве примера думаю сойдёт.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru