c++ - 在 header 中使用/typedef 命名空间

标签 c++ c++11 namespaces typedef using

我在测试应用程序中有一个 std::placeholder 的用例,但我想知道,为了让 API 方面的事情看起来更简洁,是否有一种方法可以弯曲 usingtypedef 甚至 #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/

相关文章:

PHP 命名空间奇数文件夹以 "t","s","n"结尾

c++ - 大括号和main方法中的返回值

c++ - 如何仅使用文件名在 C++ 中打开文件?

C++11:格式错误的调用是未定义的行为?

c++ - 为什么 clang 和 gcc 在这个虚拟继承代码上意见不一?

r - 如何确定函数的命名空间?

c++ - 使用命名空间隐藏内部类实现

c++ - 成员指针函数列表

c++ - 函数模板参数的模板返回类型

c++ - 模板参数无效