Ошибки, баги, вопросы - страница 2211

 
pavlick_:

А класс точно относится к namespace?

 
pavlick_:

А по делу сказать чего-нибудь можете? Где задокументирован поиск имён без квалификаторов? Из справки:

---------

Синтаксис

Синтаксически язык программирования торговых стратегий MQL5 очень похож на язык программирования С++, за исключением некоторых возможностей:

  • отсутствует адресная арифметика;
  • отсутствует оператор goto;
  • нельзя объявить анонимное перечисление;
  • нет множественного наследования.

------------

ни слова про unqualified name lookup, а это базовые вещи. Ну дело хозяйское в общем-то - изучать язык по сообщениям Рената, отсутствие документации и обратной совместимости, но тогда язык производит впечатление детской игрушки.

поддерживаю, уже назрело отказаться от справки в сторону правил языка, т.к. по сути mql5 это уже другой язык программирования

 
Konstantin:

поддерживаю, уже назрело отказаться от справки в сторону правил языка, т.к. по сути mql5 это уже другой язык программирования

А разве где-то говорили что-то обратное???

 
Alexey Navoykov:

А класс точно относится к namespace?

Да, вы правы, это относится именно к namespace. Для классов есть отдельный пункт, ну суть та же:

9.2.3.2  Static data members
[class.static.data]
2. The declaration of a non-inline static data member in its class definition is not a definition and may be of
an incomplete type other than cv void. The definition for a static data member that is not defined inline
in the class definition shall appear in a namespace scope enclosing the member’s class definition. In the
definition at namespace scope, the name of the static data member shall be qualified by its class name using
the :: operator. The initializer expression in the definition of a static data member is in the scope of its class (3.3.7).

[Example:
class process {
static process* run_chain;
static process* running;
};
process* process::running = get_main();
process* process::run_chain = running;

The static data member run_chain of class process is defined in global scope; the notation process::run_chain specifies that the member
run_chain is a member of class process and in the scope of class process. In the static data member definition, the
initializer expression refers to the static data member running of class process. — end example]
 
Alexey Viktorov:

А разве где-то говорили что-то обратное???

а разве я что то обратное говорю? почему мне вопрос задаете?

 
pavlick_:

Ошибка компилятора:

Alert: 3

Не вижу ошибки. По-моему, все верно.

Сперва присваивается статическому члену структуры значение 5, а переменной - значение 3.

Потом значение переменной переписывается в статический член структуры.

Понятно, что в этом статическом члене и должно оказаться значение, которое мы присвоили переменной.

Мне кажется - все очень логично.

 
Georgiy Merts:

Не вижу ошибки. По-моему, все верно.

Мне кажется - все очень логично.

Логика должна быть единой, а не выборочной (иначе это не логика)

Если здесь

int a = 1;
struct A {
    void f();
    int a;
};
void A::f()
{
   a = 2; //(*)
}

в (*) подразумевается A::a = 2, а не ::a = 2

то и там должно подразумеваться S::q = S::z, а не S::q = ::z

 

Простите. Я не поняла. Дак Вы меня убили? Или нет?

Я могу писять на Этом форуме?
 
B0biThec:

Простите. Я не поняла. Дак Вы меня убили? Или нет?

Я могу писять на Этом форуме?

Был бан на сутки за спам. Дальше будете продолжать спамить - бан на неделю, затем на месяц, затем удаление аккаунта, и будете писять в положенном месте.

 
Artyom Trishkin:

Был бан на сутки за спам. Дальше будете продолжать спамить - бан на неделю, затем на месяц, затем удаление аккаунта, и будете писять в положенном месте.

из отпуска возвратились ?

Причина обращения: