假设这样的文件:
my_code.h:
namespace my {
namespace _details{
int ActionNoPrecision(int a);
float ActionSinglePrecision(float a);
double ActionDoublePrecision(double a);
}
auto& Action = my::_details::ActionSinglePrecision;
}
my_code.cpp -实现这些功能
因此,Action是函数别名,应从用户代码中调用。从我的角度来看,我想控制该别名的含义,而又不触及用户的源代码(即用户仍在调用Action,但Action = ActionDoublePrecision)。但是使用当前代码,我无法包含此头文件,因为函数引用将被多次定义。
如何处理?我想到了在内部使用这些别名创建静态类的想法,但是我从未在任何库中看到这种方法(所以它们只有一个硬编码的函数名吗?)。
我还有一个更深层次的问题。如果别名的含义发生了变化(即函数别名,类型别名等),别名是否可以解决重新编译用户代码的需求?我想没有,因为真正调用的函数的位置已更改,因此必须重新链接
答案 0 :(得分:1)
您快到了。只需使用此:
=QUERY(IMPORTRANGE("11n8TUEiuLLtbyd6ot5imX0zoAOLforHEBnefnHpoZhs", "Sheet1!A1:AA"),
"select * where Col20='Amy'", 1)
可以毫无问题地将其包含在多个翻译单元中。