
struct { int one; } test ; test.one = 55;
BOOST_SCOPE_EXIT( ( test.one ) ) { } BOOST_SCOPE_EXIT_END
The above code gives me lots of compiler errors. Is there a special syntax I have to provide to be able to use structure members?
This is not supported because only identifiers are allowed. If test was a variable of non-local non-anonymous struct type, you could pass it:
BOOST_SCOPE_EXIT( (test ) ) { int one = test.one; ... } BOOST_SCOPE_EXIT_END
Alex
Thank you, Alex. But unfortunately I couldn't use your suggested syntax because the copy-constructor for the structure is being called ( a couple of times. ) Instead, I'm opting for: struct ttt { int one; } test ; test.one = 55; int *one_ref = &test.one; BOOST_SCOPE_EXIT( ( one_ref ) ) { *one_ref = 666; // experimental code } BOOST_SCOPE_EXIT_END; This solves my problem. What really surprised me however was that when I made 'one_ref' an int&, the original test.one variable never got modified. Some other ( I assume temp variable ) was modified. If you're wondering what this is about, I'm trying to create a new macro that uses your macro. Regards, -Sid Sacek _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost