> On Feb. 19, 2014, 8:52 p.m., Benjamin Hindman wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/json.hpp, line 159
> > <https://reviews.apache.org/r/17520/diff/2/?file=469354#file469354line159>
> >
> >     I definitely prefer the SFINAE approach to the last one! Can we make 
> > this a default template parameter instead though? This has been the 
> > convention with SFINAE in libprocess (although there is a rather small 
> > footprint of SFINAE), and we've used function parameters to further 
> > disambiguate beyonod SFINAE (see Prefer/LessPrefer future.hpp in 
> > libprocess).

Ben - I tried to do that and I got a compiler error "error: default template 
arguments may not be used in function templates".  I'm using :
[tw-mbp13-ccarson.local Wed Feb 19 01:40:29 (fixJSONbool) ~/mesos/build]$>g++ 
--version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) 
(LLVM build 2336.11.00)

am I using the wrong version of C++ or should I wrap it in #if {C++11} ?


- Charlie


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/17520/#review34924
-----------------------------------------------------------


On Feb. 4, 2014, 9:41 p.m., Charlie Carson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/17520/
> -----------------------------------------------------------
> 
> (Updated Feb. 4, 2014, 9:41 p.m.)
> 
> 
> Review request for mesos, Benjamin Hindman and Jeff Currier.
> 
> 
> Bugs: https://issues.apache.org/jira/browse/MESOS-939
>     
> https://issues.apache.org/jira/browse/https://issues.apache.org/jira/browse/MESOS-939
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
>     Add JSON::Boolean to stout/json.hpp.
> 
>     If you assign an JSON::Object a bool then it will get coerced into
>     a JSON::Number w/ value of 0.0 or 1.0.  This is because JSON::True
>     and JSON::False do not have constructors from bool.
> 
>     The fix is to introduce a common super class, JSON::Boolean, which
>     both JSON::True and JSON::False inherit from.  JSON::Boolean has the
>     necessary constructor which takes a bool.
> 
>     However, this leads to ambiguity when assigning a cstring to
>     a JSON::Value, since JSON::String already takes a const char * and
>     a const char * is implicitly convertable to a bool.
> 
>     The solution for that is to rename the variant from JSON::Value
>     to JSON::inner::Variant and to create a new class JSON::Value
>     which inherits from JSON::inner::Variant.  The new JSON::Value
>     can have all the conversion constructors in a single place, so
>     is no ambiguity, and delegate everythign else to the Variant.
> 
>     Also added a bunch of unit tests.
> 
>     SEE: https://issues.apache.org/jira/browse/MESOS-939
> 
>     Review: https://reviews.apache.org/r/17520
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/json.hpp 
> 3148a7873397f6b0b2ebdbff3b640535ccd12318 
>   3rdparty/libprocess/3rdparty/stout/tests/json_tests.cpp 
> 29ada8a4a0396f889eb2583c3b3ff622050125af 
> 
> Diff: https://reviews.apache.org/r/17520/diff/
> 
> 
> Testing
> -------
> 
> make check + new unit tests
> 
> 
> Thanks,
> 
> Charlie Carson
> 
>

Reply via email to