> On Feb. 20, 2014, 12:14 a.m., Dominic Hamon wrote: > > 3rdparty/libprocess/3rdparty/stout/include/stout/json.hpp, line 102 > > <https://reviews.apache.org/r/17520/diff/2/?file=469354#file469354line102> > > > > consider making this (and the other single parameter constructors in > > this file) explicit.
the design goal for the existing class was to allow implicit assignment. - Charlie ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/17520/#review34952 ----------------------------------------------------------- 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 > >