我有一个代码,它使用以下方式查找输入的大小:
template <typename T>
void func (T& input) {
const void *valuePtr;
size_t valueSize;
tie(valuePtr, valueSize)
= detail::ParamInfo<typename remove_const<T>::type>::get(input);
//code
}
如果输入是一个数组,我需要获取它的实际大小而不是指针大小。因此,如果我有
size_t data[3];
我func
用数据参数调用,我确实得到valueSize = 12
了但是如果我不知道数组的大小我会遇到一个问题,例如:如果我有
vector<size_t> data;
data = getData(); //as a result data is a vector of 2 elements
size_t *dataArr = &data[0];
如果我func
用dataArr
参数调用,我得到 4,而不是 8。
我该如何解决这个问题 - 我无法知道/预测从返回的参数的大小getData()