Issue with std :: reference_wrapper

Das Problem ist mit dem folgenden Code klar:

#include <functional>
#include <iostream>
#include <vector>

int main() {
  //std::vector<int> a, b;
  int a = 0, b = 0;
  auto refa = std::ref(a);
  auto refb = std::ref(b);
  std::cout << (refa < refb) << '\n';
  return 0;
}

Wenn ich das kommentierte @ verwenstd::vector<int> a, b; Anstatt vonint a = 0, b = 0;, dann wird der Code nicht auf GCC 5.1, Clang 3.6 oder MSVC'13 kompiliert. Meiner Meinung nach,std::reference_wrapper<std::vector<int>> ist implizit konvertierbar zustd::vector<int>& ist LessThanComparable und sollte daher LessThanComparable selbst sein. Könnte mir das jemand erklären?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage