Poniższy kod:
#include <utility>
#include <algorithm>
#include <vector>
#include <tuple>
#include <unordered_map>
using namespace std;
using liczba = pair<int, float>;
using xxx = unordered_map<int, char>;
using dar = pair<liczba, xxx::iterator>;
bool operator< (const dar& d1, const dar& d2)
{
return true;
}
int main()
{
vector<dar> dary;
dar d;
dary.push_back(d);
dary.push_back(d);
dary.push_back(d);
dary.push_back(d);
dary.push_back(d);
sort(dary.begin(), dary.end());
}
nie kompiluje się (https://ideone.com/Zyg8Fk). W czym jest problem? Gdy zamiast
using dar = pair<liczba, xxx::iterator>;
będzie
using dar = pair<liczba, vector<int>::iterator>;
wszystko działa.