0
標準ライブラリのみでC++ 03(クロスプラットフォーム)を使用しています。サポートされていないクラスが与えられた場合にコンパイルに失敗するテンプレートクラスがあります。 。 は、これまでのところ私は、実行時エラーが生成されています:テンプレートクラス - サポートされていないクラスの強制コンパイルエラー
template <class Key, class Val>
class MyClass: public other_class<Key, Val>
{
public:
template<class T1M, class T2M>
struct ThisGetter
{
static T1M Get()
{
throw(std::exception("Failed")); //Change this to compilation failure
}
};
template<class T2M>
struct ThisGetter<int, T2M>
{
static Key Get()
{
int temp = std::numeric_limits<int>::min();
return temp;
}
};
};
を可能ならば、私は次のことを持っている、とします
MyClass<int, int> works; // compilation successful
MyClass<string, int> fails; // compilation failed
が、それは可能ですか?私が正しく
おかげで、私はそれを削除することを決めたブーストといくつかの問題の後
'static_assert(false)'? –
@PavelGolubev pre C++ 11標準ではありません。 –
これはC++ 11です。私はブーストを使用しません。 –