用于在函数内调用命名空间的任何简短形式

any short form for calling namespace inside the function

我使用犰狳矩阵库来分配一个向量,例如:

mid(mids::input1)=....
mid(mids::input2)=....
mid(mids::input3)=....
mid(mids::input4)=....
mid(mids::input5)=....
mid(mids::input6)=....

这里 mid 是一个向量,它的函子与 operator = 混合是类似于 mid[...] 的东西,用于将值分配给向量的特定索引。

mids是一个命名空间。因为,我经常使用 mid(mids:....) 的模式,我想知道是否有任何方法可以避免写得太长并缩短它,例如:

mid(input6)=...

换句话说,在 mid 的仿函数内部,我希望考虑命名空间 mids

是否有任何 C++11(或更低版本)的解决方案?

我不喜欢使用宏。我不喜欢为整个代码打开 using namespace mids;

我只需要 using namespace mids;mid 仿函数中。

只需将 using namespace mids; 放入要使所有名称可见的范围内。它不会使该范围外的任何内容可见。示例:

void fun1 () {
    using namespace mids;
    auto v = input1;  // Ok, finds mids::input1
}

void fun2 () {
    auto v = input1;  // Error, cannot see mids::input1
}

偶数

void fun () {
    mid.input(input1); // Error
    {
        using namespace mids;
        mid.input(input1); // Ok
    }
    mid.input(input1); // Error
}