Прежде всего, чтобы объяснить, что я пытаюсь сделать:Переходя условие в качестве параметра
void Foo(int &num, bool condition);
Foo(x, x > 3);
Этот код в основном будет оценивать булево условие перед вызовом функции, а затем передать чисто истинным или ложным. Я ищу способ сделать это пройти само состояние, так что я мог бы сделать что-то вроде этого:
void Foo(int &num, bool condition)
{
while(!condition)
{
num = std::rand();
}
}
Я знаю, что может быть обходной путь, передавая строку, содержащую состояние и разбор последнего, и Я сейчас работаю над этим, но считаю это довольно неэффективным. Принятым ответом будет тот, кто объясняет решение любым другим способом рядом с тем, который разбирает строку, содержащую условие, или ответ, который разъясняет, что этот способ прохождения условий невозможен.
Заранее спасибо
Есть ли увеличенная картинка, чтобы мы могли видеть «Foo» (притворяться, что это работает так, как вы хотите) в реальной ситуации? Кроме того, вы передаете 'x' в качестве параметра, когда это ссылка, а не адрес' x'. – GManNickG
Если это 'std :: rand()' обратите внимание, что он возвращает 'int' и не принимает аргументов. –
Да, я не проверял, я просто написал это, чтобы дать представление о том, как все должно работать. Мне очень жаль, что код смехотворный, но я написал его через несколько минут прямо здесь. @GMan - ну, я могу скопировать и вставить код, но может случиться, что он пропустит некоторые части, поэтому я просто хотел дать эту идею. То, что он должен делать, - это запросить пользователя для ввода снова и снова, пока условие не соблюдается. – Johnny