我使用armadillo矩阵库来分配矢量,例如:
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
。
答案 0 :(得分:0)
只需将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
}