Для простоты я собираюсь опорочить весь вопрос.Lazy Оценка выражения, хранящегося в векторе
Я работаю над булевой арифметикой, используя только операторы OR и AND (пока).
Мои булевские выражения хранятся в векторе, чередующем переменную и оператор (что-то вроде [a, ||, b] для «a OR b»).
Я хотел бы знать, если это возможно цепь обратно мой вектор, как если бы я написал:
std::vector<xxx> v = {true, &&, (, false, ||, true,)};
// result = true && (false || true) = true
bool result = vector[0] vector[1] vector[2] vector[3] vector[4] vector[5] vector[6];
Я знаю, что существуют алгоритмы оценки арифметической (как маневровый двор), но я хотел бы избегайте их использования и вместо этого используйте оценщик C++. Я решил, что могу перегружать операторов для обработки простых выражений, но как только скобки появляются, я застрял.
Прошу прощения, если этот вопрос уже задан и ответил, я просто не знаю, какие ключевые слова использовать в моих поисках!
Спасибо заранее, даже просто подсказкой бы неплохо :)
Хороший вопрос. Мне тоже нужен ответ. –
ИЛИ нет +. Это XOR. 'true + true = false',' true || true = true'. – Puppy
@DeadMG: Хммм true + true дает true для меня. Я должен что-то упустить:/В любом случае, я редактировал свой вопрос, чтобы использовать && и ||. –