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 } {}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Найти k1-количество одинаковых элементов в двумерном массиве c++;
Вопрос может показатся очень глупым, но все же меня интересует как вызвать конструктор после объявление поляЯ пробовал вот так но у меня...