変数の型のプロパティをテストしたいと思います。私はそれをすることができますが、コードはあまりにも冗長です。型の変数に型をつける
#include <vector>
int main() {
std::vector<int> v, &rv=v;
// ‘rv’ is not a class, namespace, or enumeration
//rv::value_type i1;
// Ok
decltype(v)::value_type i2;
// decltype evaluates to ‘std::vector<int>&’, which is not a class or enumeration type
//decltype(rv)::value_type i3;
// Ok
std::remove_reference<decltype(rv)>::type::value_type i4;
}
Iはdecltype
で暮らすが、std::remove_reference
を追加する多すぎることができます。
私は、容器内の値の型と同じ型の変数を定義する例を考えます。補助テンプレートを定義せずに、コードを短くする良い方法はありますか?
テストするプロパティは何ですか? (これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようなものです) – molbdnilo
Dunno、 'remove_reference'行はそれを見ません私に悪い、特に。あなたはこれを何十回もやろうとしないと考えている。それは答えはおそらく "いいえ"と言われています。 –
これを繰り返し使用している場合は、 'using'文を使って' value_type'などにエイリアスしてください – jaggedSpire