Краткое вступлениеДобрый день! Так как я не занимаюсь разработкой именно на cpp (пишу под Arduino) долго не знал про такую вещь, как namespace
'сы, которая иногда очень помогает, но вот возникла проблема.
В файле (
foo.h), в котором объявлен
namespace foo
, обращение к его члену
Bar foo::baz
не работает, а выдаёт ошибку:
error: 'baz' in namespace 'foo' does not name a type
В то время, как в другом файле ((
main.cpp), который включает
foo.h, всё прекрасно работает.
Кодmain.cpp#include "foo.h"
foo::baz.func(); // работает
foo.hclass Bar {
void func() {;}
}
namespace foo {
Bar baz;
}
foo::baz.func(); // error: 'baz' in namespace 'foo' does not name a type
ВОПРОС: объясните, пожалуйста, чем вызвана подобная магия и что с этим делать?
UPD: проблема оказалась не в namespace вовсе, а в том, что обращение к члену namespace'а происходило вне функции