C++ 在函数内调用名称空间的任何简短形式

C++ 在函数内调用名称空间的任何简短形式,c++,c++11,namespaces,C++,C++11,Namespaces,我使用犰狳矩阵库指定一个向量,例如: mid(mids::input1)=.... mid(mids::input2)=.... mid(mids::input3)=.... mid(mids::input4)=.... mid(mids::input5)=.... mid(mids::input6)=.... mid(input6)=... 这里的mid是一个向量,它的函子与操作符=混合,类似于mid[…]为向量的特定索引赋值 而mids是一个名称空间。由于我经常使用mid(mids:..

我使用犰狳矩阵库指定一个向量,例如:

mid(mids::input1)=....
mid(mids::input2)=....
mid(mids::input3)=....
mid(mids::input4)=....
mid(mids::input5)=....
mid(mids::input6)=....
mid(input6)=...
这里的
mid
是一个向量,它的函子与
操作符=
混合,类似于
mid[…]
为向量的特定索引赋值

mids
是一个名称空间。由于我经常使用
mid(mids:..)
模式,我想知道是否有任何方法可以避免写得长而短,例如:

mid(mids::input1)=....
mid(mids::input2)=....
mid(mids::input3)=....
mid(mids::input4)=....
mid(mids::input5)=....
mid(mids::input6)=....
mid(input6)=...
换句话说,在
mid
的函子中,我希望考虑命名空间
mid

有没有C++11(或更低版本)的解决方案

我不喜欢使用宏。我不喜欢使用名称空间mid打开


我只需要
使用名称空间mid
mid
函子中。

只需使用名称空间mid放置
位于要使所有名称在中可见的范围内。它不会使该范围之外的任何内容可见。例如:

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
}

您是否尝试使用名称空间mid放置
在该函数中?@MikeSeymour我认为它不会影响调用点。我指的是多次调用
mid
的函数。或者某个范围(比“整个代码”窄),其中包含所有调用
mid
的函数。问题是会发生名称冲突。这里名称空间
mids
状态
有许多共同的名称。你是说使用名称空间mids放置
在实现的代码中?那么,它会影响调用点吗?@ar2015添加了一个示例来澄清。它只在函数内部工作,而不在我调用
func1
的地方工作。我说的对吗?@ar2015是的,你应该把它放在你想使用名称的范围内,而不是你调用的函数中。也就是说,将它放在执行此操作的范围内
mid.insert(mids::input1)东西。