Что мешает этой инициализации работать?Использование оператора преобразования для инициализации карты
#include <map>
using std::map; using std::pair; using std::make_pair;
struct P {
char a_, b_;
P(char a, char b) : a_{a}, b_{b} {}
operator pair<char,char>() { return make_pair(a_, b_); }
};
int main() {
map<char,char> qmap { P('a','b') };
}
Похоже, что оператор преобразования в P
не может быть применен неявно внутри рамно-initialisier-лист? Или что-то еще?
два ответа одновременно. вы получаете «принять» ... – towi