私はテンプレートを扱っています、それはとても簡単です。これが現在の構造です。
//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にこのコードを受け入れるように説得するにはどうすればよいですか?