【发布时间】:2017-06-23 09:26:01
【问题描述】:
我有一个用 2 个参数声明的函数:
第一个是维度为 2 的数组,可以是
int、string或bool例如这样声明:int array[2] = {0};第二个参数是一个值(
int、string或bool)
我想声明一个内联模板函数来匹配不同类型的数组。例如我这样做:
template <typename T, typename V>
inline void affectParameter(T* array, V value)
{
array[0] = value;
}
在cpp文件中:
int value(2);
int[2] array = {0};
affectParameter(array, value);
但我想只使用一个模板T 以避免在函数调用T 不是V 的数组时出现问题。
nb:我不能以其他方式声明变量数组。
【问题讨论】:
-
这不是有效的 C++ 代码,这一行:
int[2] array = {0};必须是:int array[2] = {0}; -
int[2] 数组不是有效的 C++ ...
-
很抱歉,只是打错了。已更正。
-
@rudy 为什么不直接使用
std::array? -
很遗憾我无法修改数组的声明