Czy istnieje odpowiednik pętli for ... else w języku C++?

Czy istnieje odpowiednik pętli for ... else w języku C++?

Prostszym sposobem wyrażenia własnej logiki jest użycie std::none_of :

if (std::none_of(std::begin(foo), std::end(foo), bar))
    baz();

Jeśli propozycja zakresu dla C++17 zostanie zaakceptowana, miejmy nadzieję, że uprości się to do:

if (std::none_of(foo, bar)) baz();

Jeśli nie masz nic przeciwko użyciu goto również można to zrobić w następujący sposób. Ten oszczędza z dodatkowych if check i deklaracja zmiennej o wyższym zakresie.

for(int i = 0; i < foo; i++)
     if(bar(i))
         goto m_label;
baz();

m_label:
...

To jest moja przybliżona implementacja w C++:

bool other = true;
for (int i = 0; i > foo; i++) {
     if (bar[i] == 7) {
          other = false;
          break;
     }
} if(other)
     baz();