用下面的代碼如何訪問在struct/class範圍內聲明的別名?
Header.h
namespace some_name {
struct foo {
// using alias
using MyMap = std::map<double, some_class* const>;
MyMap* GetMap();
MyMap* map_;
}
}
Source.cpp
#include "Header.h"
// using declaration
using some_name::foo;
MyMap* foo::GetMap(){
...
return map_;
}
當我編譯我得到指明瞭編譯器錯誤:
error: ‘MyMap’ does not name a type
MyMap* foo::GetMap() {
^
但是,如果我在頭文件中定義了GetMap()
事情工作正常,但如果我把它移動到源文件,我得到的錯誤。我在這裏錯過了什麼?
只使用作品命名空間,而不是結構。 –
@BaummitAugen [Erm什麼?](http://coliru.stacked-crooked.com/a/5516cd1c40886d9b) – Borgleader
@Borgleader不是我的意思,但我承認我措辭不佳。我的意思是說'using'不能將名字從'struct'拖到名字空間。 –