【发布时间】:2020-01-17 08:41:03
【问题描述】:
为什么下面的代码会起作用(Utilities 是一个命名空间):
template<>
std::map<uint8_t, std::string> A::Utilities::EnumDescription<A::B::Tabs, uint8_t>::descMap =
{...};
而这个没有?
namespace A
{
namespace B
{
template<>
std::map<uint8_t, std::string> A::Utilities::EnumDescription<Tabs, uint8_t>::descMap = // Error --> descMap
{...};
}
}
错误 C2888:无法在命名空间“B”中定义符号
成员“A::Utilities::EnumDescription::descMap [with E=A::B::Tabs, T=uint8_t]”不能在当前范围内特化
【问题讨论】:
-
发布的散文都没有编译为 C++(更不用说“工作”了)。
-
{...}是伪代码。 -
@Pietro -- 这是无法编译的伪代码。不要发布想要尝试的人必须编辑的代码。
标签: c++ scope namespaces