函数中有多个using指令

pin*_*gul 8 c++ syntax using

我不想在给定的函数中包含整个命名空间,而只想包含我将要使用的东西,例如:

void doStuff() {
    using std::sin;
    using std::cos;
    ...
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

有时这个列表会变长.我想将其缩小到以下内容(类似于变量声明的可能性):

void doStuff() {
    using std::sin, std::cos;
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我很惊讶地发现这是不可能的(error: expected ';' after using declaration).有没有理由为什么这样using定义?有没有其他方法可以简单地从给定的命名空间中包含许多函数(除了做using namespace ...;)?

pin*_*gul 8

我想要的东西目前似乎不可能.但是,从en.cppreference.com:

具有多个using-declarator的using声明等效于使用一个using-declarator的using声明的相应序列.(自C++ 17起)

使用以下示例:

namespace X {
    using A::g, A::g; // (C++17) OK: double declaration allowed at namespace scope
}
Run Code Online (Sandbox Code Playgroud)

这似乎表明将来有可能.