タイプではなくテンプレートのエイリアスを作成しようとしていますが、構文を見つけることができません。以下は私の問題を示す例です。私の推測ではこれはできないことですが、誰かが私を間違っていると証明できることを願っています。それができない場合、これを行うには意味がないいくつかの根本的な理由はありますか、それとも実装されていませんか? Direction::Opposite
でテンプレートへのC++エイリアス?
template <class S>
class Down;
template <class S>
class Up {
template <class S1>
using Opposite = Down<S1>;
};
template <class S>
class Down {
template <class S1>
using Opposite = Up<S1>;
};
template <template <typename> class Direction>
void oneDirection() {
//Call another function here that uses the template argument as a template
}
template <template <typename> class Direction>
void bothDirections() {
oneDirection<Direction>();
oneDirection<Direction::Opposite>(); //This doesn't compile
}
int main() {
bothDirections<Up>();
}
コンパイルしていないと表示された行に 'typename'がありません。 – KyleKnoepfel
@KyleKnoepfel 'Opposite'もテンプレート引数を必要とするテンプレートなので、' typename'だけで問題を解決することはできません。 –