編集:私はWindows用のtdm-gcc-4.7.1-2を使用しています
これを解決する方法がわかりません。B
これを一種の型リストとして使用して、のtypedefに存在しない型を使用しようとしていることを知らせたいと思います。
template <typename T, typename U>
struct A {
typedef pair<T, U> type;
};
struct B : A<int, string>, A<int, float> {};
B::type foo; // won't compile, ambiguous reference, as expected
B::A<int, int>::type bar; // compiles fine?? :(
それを失敗させる方法A<int, int>
(および他A
の'が継承されていないものB
)、またはこれを回避する別の方法はありますか?を使用して、各要素とメタ関数にフィードするものを比較しtuple
て、それを繰り返すことができると思いますが、これは簡単に思えました...最初は:\is_same