Форум программистов, компьютерный форум 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' я так понял, это из-за того что часть библиотек от которых зависит цель, были собраны как 32-ух битные. но с этим вроде все нормально, пересобрал все либы - скомпилировалось. теперь при запуске получаю такое...
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. Создание локальных экземпляров класса, 2.2. Создание динамических экземпляров класса? Требуется что-то такое написать, после чего #define n ... // некая целая константа class a { ...}; // Некий класса, a obj1; // можно
C++ Можно ли создать глобальный обект, вызвав для него закрытый конструктор? http://www.cyberforum.ru/cpp/thread98532.html
Можно ли создать глобальный объект, вызвав для него закрытый конструктор? Как?
C++ Конструктор с параметром-объектом class a { private: ... public: a (); ... }; class b { подробнее

Показать сообщение отдельно
Yurii_74
paladin
279 / 179 / 3
Регистрация: 25.02.2009
Сообщений: 592
27.02.2010, 08:55
Пытались "проваливаться" внутрь функции при отладке? Про строки вот такой кусок кода:
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
template<typename T, typename C = boost::mpl::false_>
struct foreach_iterator
{
    // **** READ THIS IF YOUR COMPILE BREAKS HERE ****
    //
    // There is an ambiguity about how to iterate over arrays of char and wchar_t. 
    // Should the last array element be treated as a null terminator to be skipped, or
    // is it just like any other element in the array? To fix the problem, you must
    // say which behavior you want.
    //
    // To treat the container as a null-terminated string, merely cast it to a
    // char const *, as in BOOST_FOREACH( char ch, (char const *)"hello" ) ...
    //
    // To treat the container as an array, use boost::as_array() in <boost/range/as_array.hpp>,
    // as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ...
    #if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
    BOOST_MPL_ASSERT_MSG( (!is_char_array<T>::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) );
    #endif
 
    // If the type is a pointer to a null terminated string (as opposed 
    // to an array type), there is no ambiguity.
    typedef BOOST_DEDUCED_TYPENAME wrap_cstr<T>::type container;
 
    typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<
        C
      , range_const_iterator<container>
      , range_mutable_iterator<container>
    >::type type;
};
и чуть ниже практически то же для struct foreach_reverse_iterator

В общем чтобы работало везде, где только можно наворотили достаточно громоздкие конструкции. Впрочем оно того стоило.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru