2

残念ながら、私は C++11 を使用していません (その場合は auto を使用します)。

次のような関数があるとします (非常に単純な例)。

template<class ITR>
void f(ITR begin, ITR end)
{
    TYPE temp = *begin;
}

イテレータから一時的な値をローカル変数に保存したいのですが、TYPE を取得する方法がわかりません。さらに、関数は std イテレータと生のポインタで呼び出されます。

何か助けはありますか?ありがとう

4

2 に答える 2

7

std::iterator_traitsを使用する

template<class ITR>
void f(ITR begin, ITR end)
{
    typename std::iterator_traits<ITR>::value_type temp = *begin;
}
于 2013-08-27T13:44:32.410 に答える
3
typedef typename std::iterator_traits<ITR>::value_type value_type;
于 2013-08-27T13:44:22.220 に答える