c++ - What is a concise syntax for accessing the other element of two element collection? -


i have 2-element collection {a, b} , complex expression ex(_, _) involving both elements in non-commutative way. result of computation i'm looking equivalent to:

ex(a, b); ex(b, a); 

but instead of repeating whole expression twice (defining function computing ex not acceptable), use loop this:

for (auto i: {a, b})   ex(i, <other element>); 

what short way of writing such loop?

edit

since number of readers found question unclear, please have @ 2 answers below, present solutions looking for. ex(a, b) shorthand long chunk of code using a , b in order. reasons why don't want define function ex stylistic , beyond scope of question.

if elements indexed 0 , 1 (such in vector v) use exclusive or ^ select alternative index:

for(auto i: {0, 1})     ex(v[i], v[i ^ 1]); 

Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -