Si consideri il seguente codice:Perché i token sono racchiusi tra parentesi e non le espressioni di valore r?
#include <iostream>
struct Foo
{
Foo() : bar(0) {}
int bar;
};
int main()
{
Foo foo;
++(foo.bar);
std::cout<< foo.bar << std::endl;
system("pause");
return 0;
};
Perché foo.bar
valutare a 1?
Le parentesi in (foo.bar)
non creano un'espressione senza nome (valore r) che viene quindi incrementata?
No, stai confondendo questo con un altro linguaggio dove 'f (x)' e 'f ((x))' sono diversi? –
@BoPersson Ma ci sono alcuni contesti in cui fa la differenza. Ad esempio 'decltype (x)' e 'decltype ((x))' possono essere diversi. – juanchopanza
@juanchopanza: dannato ... è difficile! –