В принципе, я немного устал писать:
std::map<key_t, val_t> the_map;
...
auto iterator = the_map.find(...);
if(iterator != the_map.end()) { // note the "inversed" logic and logically superflous end() call
...
}
Что действительно имело смысл, это:
if(auto x=the_map.find(...)) {
... // x could either be an iterator or maybe something like boost::optional<val_t>
}
Есть ли какой-нибудь известный уровень техники который определяет некоторую вспомогательную информацию для сокращения синтаксиса ! = container.end ()
, или я единственный, кого это раздражает?