2016-11-02 4 views
0

を作る私はいくつかのクラスAとBを持っている:は、ネストされたタイプのタプル

struct A 
{ 
    typedef int value_type; 
}; 
struct B 
{ 
    typedef float value_type; 
}; 

私は可変長テンプレート経由:: VALUE_TYPEとB ::値型のタプルを作りたいです。 私はこのような何かを期待しています:

template<typename ...T> 
struct my_tuple 
{ 
    typedef std::tuple<T::value_type...> tuple_type; 
}; 

このdoesntのコンパイル。どのようにしてこの種のタプルを作ることができますか?

+2

'typename'がありませんか? – WhiZTiM

+1

"自分のコードはコンパイルできません"という質問をするときには、実際のエラーを貼り付ける方が良いでしょう。 – imreal

答えて

1

Tは、従属名です。typenameを追加する必要があります。このように:

template<typename ...T> 
struct my_tuple 
{ 
    typedef std::tuple<typename T::value_type...> tuple_type; 
}; 
+0

完璧!ありがとう! – Evgeniy

関連する問題