C # имеет аналогично функционирующий встроенный оператор ??
, который, я считаю, называется coalesce.
Оператор Perl ||
(логическое ИЛИ короткого замыкания) также имеет аналогичную функциональность: вместо возврата 0 или 1 он возвращает значение первого аргумента, оцениваемое как true:
0 || 7
возвращает 7, а не 1 или true
, как ожидал бы программист C \ C ++ или C #.
Самым близким к этому встроенным в C ++ является алгоритм find_if:
vector<int> vec;
vec.push_back(0);
vec.push_back(0);
vec.push_back(7);
vector<int>::iterator first_non_0 =
find_if(vec.begin(), vec.end(), bind2nd(not_equal_to<int>(), 0));