struct Expression {
Expression(std::string token) : token(token) {};
Expression(std::string token, Expression a) : token(token), args( a ) {};
Expression(std::string token, Expression a, Expression b) : token(token), args( a, b ) {};
std::string token;
std::vector<Expression> args;
};
Ошибка в 3 строке.
Собственно, сама ошибка: error C2664: std::vector<_Ty>::vector(const std::allocator<_Ty> &): невозможно преобразовать параметр 1 из "Expression" в "const std::allocator<_Ty> &"
Из-за чего ошибка? Как исправить? Заранее спасибо.
Expression(std::string token, Expression a) : token(token), args( a ) {}; заменить на:
Expression(std::string token, Expression a): token(token) {
this->args.push_back(a);
}
Добавить фигурные скобки
Expression(std::string token, Expression a) : token(token), args({ a }) {}
Expression(std::string token, Expression a, Expression b) : token(token), args({ a, b }) {}
Или можно даже без круглых скобок
Expression(std::string token, Expression a) : token(token), args{ a } {}
Expression(std::string token, Expression a, Expression b) : token(token), args{ a, b } {}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости