Boost logo

Boost :

Subject: Re: [boost] A PP trick to define a synchronizedblock java-like macro
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2009-01-20 17:01:31

I have no compiled this at all.

Thanks Sebasian for pointing me this C++ feature that I ignored completly. And Joaquin, bravo for the trick.

The macros defined on the article use a wrapper of the variable that has two methods done_post_step and
post_step, but the Joaquin solution seems to me much better.

It is a pleasure to exchange on the Boost ML.

Thanks to boths,

----- Original Message -----
From: "Sebastian Redl" <sebastian.redl_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Tuesday, January 20, 2009 10:53 PM
Subject: Re: [boost] A PP trick to define a synchronizedblock java-like macro

> ________________________________________
> De: boost-bounces_at_[hidden] [boost-bounces_at_[hidden]] En nombre de Sebastian Redl [sebastian.redl_at_[hidden]]
> Enviado el: martes, 20 de enero de 2009 22:39
> Para: boost_at_[hidden]
> Asunto: Re: [boost] A PP trick to define a synchronized block java-like macro
>> vicente.botet wrote:
>>> for (VARS DECLARATION, bool __continue=true;
>>> __continue;
>>> __continue=false)
>> I'm afraid this is not valid syntax. The first clause of the
>> for-statement is a for-init-statement, which can be either an expression
>> with a semicolon, or a simple-declaration. A simple-declaration lets you
>> declare any number of variables, but they must all have the same
>> declspec, i.e. the same fundamental type (with variations like "pointer
>> to", "array of" or "function returning").
> The following variation would do:
> for (VARS DECLARATION, *continue_hlp_,**continue_=&continue_hlp_;
> continue_;
> continue_=0)

This is brilliant! Weird workaround at its best.

Boost list run by bdawes at, gregod at, cpdaniel at, john at