Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: RE: C++ compatibility
From: "Jeff Hill" <johill@lanl.gov>
To: "'Andrew Johnson'" <anj@aps.anl.gov>, "'EPICS core-talk'" <core-talk@aps.anl.gov>
Cc: "'Pelaia II, Tom'" <pelaiata@ornl.gov>
Date: Fri, 11 Mar 2011 19:27:59 -0700
Hi Tom,

I wasn?t aware of that, and it probably needs to 
be fixed. The reference counting mutex class on the 
cvs trunk might be a clean workaround. Also, presumably 
the quick fix is to just use instead, a mutable 
_pointer_.

Hopefully, I can get to this on Monday.

Jeff
______________________________________________________
Jeffrey O. Hill           Email        johill@lanl.gov
LANL MS H820              Voice        505 665 1831
Los Alamos NM 87545 USA   FAX          505 665 5107

Message content: TSPA

With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead. -- RFC 1925


> -----Original Message-----
> From: Andrew Johnson [mailto:anj@aps.anl.gov]
> Sent: Friday, March 11, 2011 12:39 PM
> To: Jeff Hill; EPICS core-talk
> Cc: Pelaia II, Tom
> Subject: Fwd: C++ compatibility
> 
> Hi Jeff,
> 
> An issue for you from the CA client library.  Tom's right about the rule
> (this
> is not a recent change either, it's present in my 1998 first edition of
> the
> spec), but I have no idea why the restriction exists.  I'm guessing that
> Apple's clang C++ compiler has started to check this.
> 
> Thanks Tom.
> 
> - Andrew
> 
> ----------  Forwarded Message  ----------
> 
> Subject: C++ compatibility
> Date: Friday 11 March 2011
> From: "Pelaia II, Tom" <pelaiata@ornl.gov>
> To: Andrew Johnson <anj@aps.anl.gov>
> 
> Hi Andrew,
> 
> I believe there is an error in some EPICS base source files in which
> reference
> members are declared mutable:
> 
> In file included from ../cac.cpp:39:
> ../cac.h:269:5: error: 'mutable' cannot be applied to references
>     mutable epicsMutex & mutex;
>     ^
> ../cac.h:270:5: error: 'mutable' cannot be applied to references
>     mutable epicsMutex & cbMutex;
>     ^
> In file included from ../cac.cpp:47:
> ../udpiiu.h:152:5: error: 'mutable' cannot be applied to references
>     mutable epicsMutex & cbMutex;
>     ^
> ../udpiiu.h:153:5: error: 'mutable' cannot be applied to references
>     mutable epicsMutex & cacMutex;
>     ^
> 
> 
> The C++ specification (section 7.1.1 item 10) explicitly forbids mutable
> reference members:
> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf
> 
> Best regards,
> Tom
> ___________________________________________________
> Tom Pelaia  |  homepage: http://www.ornl.gov/~t6p
> 
> -----------------------------------------
> --
> An error is only a mistake if you don't learn from it.
> When you learn something from it, it becomes a lesson.



Replies:
Re: C++ compatibility Pelaia II, Tom
References:
Fwd: C++ compatibility Andrew Johnson

Navigate by Date:
Prev: Fwd: C++ compatibility Andrew Johnson
Next: Re: C++ compatibility Pelaia II, Tom
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Fwd: C++ compatibility Andrew Johnson
Next: Re: C++ compatibility Pelaia II, Tom
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·