On Thu, Mar 21, 2013 at 4:11 AM, john skaller
<skal...@users.sourceforge.net> wrote:
> I just ran into a very serious problem.
>
> Consider this:
>
>         fun .. = "X<?1>(.. )"
>
> This looks innocent. But consider:
>
>         X<::std::size_t>
>
> Looks ok? It isn't:
>
> error: expected ‘<’ before ‘<:’ token

Even more fun: it's OK in C++11, just not in C++98/03.  (C++11 adds
new lexing rules for "<::" (which is "<" and "::") and "<::>" (which
is effectively "[" and "]", via the two digraphs "<:" and ":>".)

For code generators writing C++ output, portability is maximized by
adding the space.  I seem to recall that SWIG has this same problem
with C++98.

-- James

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to