Re: [Boost-bugs] [Boost C++ Libraries] #7730: Generic specializations of is_nullary for custom terminals are not possible

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7730: Generic specializations of is_nullary for custom terminals are not possible
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-02-22 13:13:35


#7730: Generic specializations of is_nullary for custom terminals are not possible
-------------------------------+---------------------
  Reporter: andysem | Owner: theller
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: phoenix
   Version: Boost 1.52.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+---------------------

Comment (by andysem):

 Replying to [comment:18 John Fletcher <J.P.Fletcher@…>]:
> What is needed (I think) is to provide a default value for the second
 template parameter. At the moment the default is void, so could we catch
 that? Seems risky to me. John

 Not sure what you mean, but I don't think the actual type matters. That
 parameter just allows to use SFINAE to eliminate specializations instead
 of the standard template specialization mechanism. Void is just something
 neutral and convenient enough.

 You could probably create some other mechanism to detect the default
 custom_terminal specialization. But that would still require some kind of
 type introspection, I think, and would arguably be slower in compile time.

 What I was suggesting is not change the approach with the
 _is_default_custom_terminal typedef, but just make it unconditional. You
 fixed Boost.Spirit already and as you said the problem is unlikely to
 appear outside Boost. So just document the needed change for those few who
 encounters the problem.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7730#comment:19>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC