|
Boost : |
Subject: Re: [boost] [Config] Patch: clang implemented N3276 decltype
From: Lars Viklund (zao_at_[hidden])
Date: 2012-03-07 02:43:31
On Tue, Mar 06, 2012 at 09:38:45PM -0800, Eric Niebler wrote:
> On 3/6/2012 9:28 PM, Daniel Walker wrote:
> > Oh yeah, I forgot this only comes up with call expressions. How about BOOST_NO_INCOMPLETE_DECLTYPE_CALL_EXPRESSIONS? The macro means the compiler does not support incomplete decltypes of call expressions.
>
> That's better, I suppose. It's not 100% accurate to say that the
> compiler doesn't support incomplete call expressions, though. If a
> compiler doesn't implement N3276, it still supports incomplete call
> expressions and usually gets the right answer, but it could potentially
> instantiate a template unnecessarily in the process. (And this could set
> off an infinite cascade of such template instantiations, which causes
> your computer to catch fire and burn off your eyebrows.)
>
> So I dunno. I still lean toward BOOST_NO_DECLTYPE_N3276 because nothing
> pithy seems to really get at the gist of it. And I don't expect this
> macro to be used outside of Boost itself. But I don't have a strong
> feeling about it.
How about some documentation or at least a comment somewhere in
Boost.Config about what it implies, even if it's just a link to the
paper?
I'd reckon that anyone that encounters it in source will want to try to
find out what it means, in some indirect way.
There's nothing worse than when good information only exists deep in
some thread on a mailing list.
-- Lars Viklund | zao_at_[hidden]
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk