如何在 .cpp 文件中函数的返回类型(签名)中使用头文件中定义的别名?

rTa*_*nna -1 c++ alias using signature using-declaration

我有一个类,Tracker我在其中声明了一个别名

Tracker.h

class Tracker {
...
using ArgsMap = std::unordered_map<std::string, std::string>;
std::shared_ptr<ArgsMap> getArgsMapForTask(std::string task);
...
}
Run Code Online (Sandbox Code Playgroud)

在 .cpp 文件中,我定义了该函数:

#include Tracker.h
...
// ArgsMap here gives error: Use of undeclared identifier 'ArgsMap' 
std::shared_ptr<ArgsMap> Tracker::getArgsMapForTask(std::string taskName)
{
ArgsMap a; // this gives no error, compiler recognizes ArgsMap
}
Run Code Online (Sandbox Code Playgroud)

如何ArgsMap在函数签名中使用?

Enr*_*lis 5

问题不在于别名位于头文件中,这是完全不相关的。

问题是别名是在类的范围内定义的,因此如果您想在类之外使用它,则需要对其进行限定:Tracker::ArgsMap