Рассмотрим следующий код.
#include <iostream>
#include <string>
struct SimpleStruct
{
operator std::string () { return value; }
std::string value;
};
int main ()
{
std::string s; // An empty string.
SimpleStruct x; // x.value constructed as an empty string.
bool less = s < x; // Error here.
return 0;
}
Этот код не скомпилируется либо на G ++, ни Microsoft Visual C ++. Отчет об ошибках, заданный компиляторами, является , не совпадает с матчей для оператора '<' S
на SimpleStruct x
на строку
в соответствии с данным string оператора ()
, а затем используйте Оператор <( Строка, строка)
?