Поэтому я попытался использовать метод any_of Boost Hana, но, в отличие от описания в реализации, он по-прежнему вызывает элемент после элемента, который первым удовлетворял предикату. Это ошибка?Boost Hana any_of?
Вот MCVE:
#include <iostream>
#include <boost/hana.hpp>
int main() {
auto t = boost::hana::tuple_t<int, double, float>;
boost::hana::any_of(t, [](auto) { std::cout << "Called\n"; return true; });
}
Выход:
Called
Called
Пожалуйста, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve). –
Ничто в документации не говорит о том, что оно не будет применяться к нескольким элементам, даже если один из них удовлетворяет предикату. Чтение реализации, поведение соответствует тому, что я ожидаю. Хотя я могу согласиться, что это может быть противоречивым и лично сделало бы это по-другому, заявления с побочными эффектами в предикате также, как правило, не одобряются. – GManNickG
http://www.boost.org/doc/libs/1_63_0/libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1any__of.html – Yamahari