Здравствуйте, Patalog, Вы писали:
P>Всем привет!
P>Кто может сказать, насколько легально данное определение ф-й? Желательно со сылками на стандарт? P>Нутром чую что не правильно, а доказать не могу. =)
P>
P>//header (.h) file
P>namespace X
P>{
P> struct A
P> {
P> void func();
P> };
P>}
P>
Как раз код правильный. (Ну там #include нужен )
using namespace вытаскивает все из пространства имен и добавляет в глобальное.
Таким образом void A::func вполне валидное определение функции.
P.S.
Я бы оставил функцию внутри пространства имен не раскрывая.
Меньше проблем будет
Здравствуйте, Patalog, Вы писали:
P>Всем привет!
P>Кто может сказать, насколько легально данное определение ф-й? Желательно со сылками на стандарт? P>Нутром чую что не правильно, а доказать не могу. =)
Комо компилит, а это говорит о многом
А насчет стандарта...
3.4.3/6
...
However, in such namespace member declarations, the nested-name-specifier may rely on
using-directives to implicitly provide the initial part of the nested-name-specifier.
[Example:
namespace A {
namespace B {
void f1(int);
}
}
namespace C {
namespace D {
void f1(int);
}
}
using namespace A;
using namespace C::D;
void B::f1(int){} // OK, defines A::B::f1(int)
—end example]
Здравствуйте, Bell, Вы писали:
B>Комо компилит, а это говорит о многом
Так и хочется чтобы при создании поста в форуме С++ был хинт скомпилировать в Комо
[]
B>А насчет стандарта... B>3.4.3/6 B>... B>However, in such namespace member declarations, the nested-name-specifier may rely on B>using-directives to implicitly provide the initial part of the nested-name-specifier.
B>