Проблема с std :: reference_wrapper

Проблема ясна с помощью следующего кода:

#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;
}

Если я использую прокомментированныйstd::vector<int> a, b; вместоint a = 0, b = 0;то код не компилируется ни на одном из GCC 5.1, clang 3.6 или MSVC'13. По моему мнению,std::reference_wrapper<std::vector<int>> неявно конвертируется вstd::vector<int>& который является LessThanComparable, и поэтому он должен быть LessThanComparable сам Может ли кто-нибудь объяснить это мне?

Ответы на вопрос(1)

Ваш ответ на вопрос