> On March 4, 2015, 4:13 a.m., Michael Park wrote:
> > I think there's value in keeping `JSON::Array` to have the symmetric 
> > interface as `std::vector`.
> > 
> > Currently,
> > 
> > ```cpp
> > JSON::Array array(N);
> > // array.values.size() == 0
> > ```
> > 
> > The equivalent-looking pattern is deceiving:
> > 
> > ```cpp
> > std::vector v(N);
> > // v.size() == N
> > ```
> > 
> > I think it would be less confusing for especially for people who are 
> > familiar with the standard library to keep:
> > 
> > ```cpp
> > JSON::Array array;
> > array.reserve(N);
> > // array.values.size() == N
> > ```
> > 
> > ```cpp
> > std::vector v;
> > v.reserve(N);
> > // v.size() == N
> > ```
> 
> Michael Park wrote:
>     Oops, the second pair of examples should read:
>     
>     ```cpp
>     JSON::Array array;
>     array.reserve(N);
>     // array.values.size() == 0
>     ```
>     
>     ```cpp
>     std::vector v;
>     v.reserve(N);
>     // v.size() == 0
>     ```
> 
> Alexander Rukletsov wrote:
>     Vector and `JSON::Array` are rather different in a way they are used. 
> There is not much sense to create a `JSON::Array` populated with variants. 
> From the other side, reserving capacity seems like a required feature, and 
> having such a c-tor will save us lines of code. Therefore I don't see much 
> value in maintaining the symmetry with `std::vector`.

> Vector and `JSON::Array` are rather different in a way they are used. [...] 
> From the other side, reserving capacity seems like a required feature, and 
> having such a c-tor will save us lines of code.

Having looked at the usage of `JSON::Array`, it looks to me like we simply use 
the public member `Array::values`. So we could obviously do 
`array.values.reserve(N);` the same as we do `array.values.push_back(elem);`. 
So "reserving capacity seems like a required feature" is covered, which means 
the main motivation is to "save us lines of code". Am I correct?

> There is not much sense to create a `JSON::Array` populated with variants.

What does this mean?


- Michael


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


On March 3, 2015, 8:11 p.m., Alexander Rukletsov wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/31699/
> -----------------------------------------------------------
> 
> (Updated March 3, 2015, 8:11 p.m.)
> 
> 
> Review request for mesos and Ben Mahler.
> 
> 
> Bugs: MESOS-2353
>     https://issues.apache.org/jira/browse/MESOS-2353
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> See summary.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/json.hpp 
> 334c898906018be6e663f53815abbe047806b95c 
> 
> Diff: https://reviews.apache.org/r/31699/diff/
> 
> 
> Testing
> -------
> 
> make check (OS X 10.9.5, Ubuntu 14.04)
> 
> 
> Thanks,
> 
> Alexander Rukletsov
> 
>

Reply via email to