我正在處理一個模板,它非常簡單。這是目前的結構:當涉及到const時,無法專門化模板
//primary template
template<typename T>
const T bit_cast(const BitExpr* p);
//specialization
template<>
inline const BitBinExpr* bit_cast<BitBinExpr*>(const BitExpr* p) {
if (p->type == XOR || p->type == AND)
return static_cast<const BitBinExpr*>(p);
return nullptr;
}
// more specializations follow
但是Visual Studio堅持認爲這是無效的。但是,當參數和返回類型爲而不是const
時,這工作得很好。我如何說服VS接受這些代碼?
如果你總是可以返回指針,也不會使用'主要模板中的const T * bit_cast'正常工作? – Mat 2012-08-05 06:25:51