4
template<typename T>
std::istream & read(std::istream & istr, typename std::enable_if<std::is_pod<T>::value, T>::type & value)
{
return istr.read(reinterpret_cast<char*>(&value), sizeof(T));
}
int main()
{
int x;
read(cin, x); // error here
}
error C2783: 'std::istream &read(std::istream &,std::enable_if<std::tr1::is_pod<_Ty>::value,T>::type &)' : could not deduce template argument for 'T'
它工作,如果我指定讀取<int>。有什麼辦法讓它從參數中推斷出類型?爲什麼在這個模板函數中不能推導出類型?
完美,謝謝。 – 2010-10-30 18:42:31
你說「一般」,否則有特定情況? – GManNickG 2010-10-30 18:46:14
@GMan我想不出另一種情況。固定。 – 2010-10-30 18:48:30