模版推导有关问题
模版推导问题
char szBuffer[128];
情况1:
template<class type,int size>
void tryabc(type (&) [size])
{
}
tryabc(szBuffer);
为什么这个可以正确推导,为什么&要加括号,加括号什么意思,不加括号就报引用数组是非法的的错误
情况2:
template<class type,int size>
void tryabc(type adb[size])
{
}
tryabc(szBuffer);
为什么这个不可以正确推导
情况3:
template<class type,int size>
void tryabc(type &adb[size])
{
}
tryabc(szBuffer);
为什么这个直接报错,说不能是模板定义
------解决方案--------------------
1 数组的引用
2 实际上是type* adb。size没有了
3 数组语法不是这么来的
char szBuffer[128];
情况1:
template<class type,int size>
void tryabc(type (&) [size])
{
}
tryabc(szBuffer);
为什么这个可以正确推导,为什么&要加括号,加括号什么意思,不加括号就报引用数组是非法的的错误
情况2:
template<class type,int size>
void tryabc(type adb[size])
{
}
tryabc(szBuffer);
为什么这个不可以正确推导
情况3:
template<class type,int size>
void tryabc(type &adb[size])
{
}
tryabc(szBuffer);
为什么这个直接报错,说不能是模板定义
------解决方案--------------------
1 数组的引用
2 实际上是type* adb。size没有了
3 数组语法不是这么来的