1
在此代碼:使用類本地類型別名在模板基類列表
template <typename Pair>
struct EdgeRange :
public std::pair<decltype(valueIter(std::declval<Pair>().first)),
decltype(valueIter(std::declval<Pair>().second))> {
using EntryFirst = decltype(valueIter(std::declval<Pair>().first));
using EntrySecond = decltype(valueIter(std::declval<Pair>().second));
EdgeRange(const Pair& p):
std::pair<EntryFirst, EntrySecond>(valueIter(p.first), valueIter(p.second))
{}
};
的decltype
類型提到的每個兩次。如何在不將類型移到課堂外的情況下消除這種重複?
......併爲構造函數類似,您可以用'EdgeRange ::對(...)'而不是命名這兩個成員類型,如果這是定義這兩個typedef的唯一目的。 –
有趣。我想知道爲什麼'std :: pair(...)'在這種情況下不起作用? –