我在测试应用程序中有一个 std::placeholder
的用例,但我想知道,为了让 API 方面的事情看起来更简洁,是否有一种方法可以弯曲 using
、typedef
甚至 #define
在 header 级别为 namespace 设置别名。
// .../datarequestprocessor.h
class DataRequestProcessor {
public:
using ProcessFunction = std::function<void(const ResultData &)>;
using RequestResultHandle = std::placeholders; // No go. Same with ::_1
...
};
// ../datarequestprocessor.cpp
ProcessFunction DataRequestProcessor::prepOne()
{
auto func = std::bind( &DataModel::setData,
m_model,
RequestResultHandle::_1 );
return func;
}
... // For other variations.
这纯粹是语义上的,也只是为了了解 using
关键字的性质。更多的是学习经验,而不是现实世界的应用程序。
干杯
最佳答案
如果你想在 header 级别使用它,那么只需引入一个命名空间别名即可:
namespace RequestResultHandle = std::placeholders;
然而,上述内容不会在类内被接受。
关于c++ - 在 header 中使用/typedef 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44057773/