很抱歉问了一个我认为我知道答案的问题,但它对我来说似乎很奇怪,它不可能是正确的。
如果我有一个模板函数
template<typename T>
int TemplatedSize(T &ref){
return sizeof(ref);
}
我用这样的字符串文字实例化它:
int i = TemplatedSize("oh how I love C++ sometimes");
我被模板实例化删除的是一个函数,它引用了一个长度为 28 的 const char 数组?我查找了它的语法,我必须说我以前从未在代码中见过它。这是否等同于实例化的内容?
int NonTemplatedSize(const char (&arrayRef)[28]){
return sizeof(arrayRef);
}
如果这是正确的,如果我的函数体中不仅仅是一个 sizeof 并且使用许多不同大小的字符串文字调用该函数,我将不得不担心代码膨胀?