Я хочу иметь два списка с такими элементами, как std::tuple<IteratorOfOtherList, T>
.Возможно ли это?
Что-то вроде этого:
#include <tuple>
#include <list>
class Foo { };
class Bar { };
class List2Iter;
typedef std::list<std::tuple<List2Iter, Foo>> List1;
typedef std::list<std::tuple<List1::iterator, Bar>> List2;
typedef List2::iterator List2Iter;
int main() {
List1 list1{};
List2 list2{};
return 0;
}
Очевидно, что он не компилируется, потому что std :: tuple требует полных типов.
Есть ли обходные пути?