
15 Nov
2012
15 Nov
'12
3:32 p.m.
On Thu, Nov 15, 2012 at 7:24 PM, Daniel James <dnljms@gmail.com> wrote:
On 15 November 2012 14:54, Daniel James <dnljms@gmail.com> wrote:
I tried building with Clang 3.1 in C++11 mode, and I got the same errors as you.
I think it's a clang bug, here's a test case:
template <typename T> struct foo {}; foo<decltype(1 > 0)> x;
It thinks the '>' from '1 > 0' is an angle bracket, I guess it has been fixed on clang trunk. A workaround is just to double the round brackets. I've attached a patch that I used to get Boost.Test to compile. It's a bit messy though.
Note there is difference between decltype(x) and decltype((x)), so the change may alter the behavior. I didn't examine the code to confirm that though, just a heads up.