
On 29/10/12 22:33, Dave Abrahams wrote:
on Mon Oct 29 2012, Mathias Gaunard <mathias.gaunard-AT-ens-lyon.org> wrote:
On 29/10/12 20:29, Dave Abrahams wrote:
Using recursive_variant_ works out quite nicely, except that it doesn't allow me to separately declare "object" and "array" and re-use them in the definition of "value":
typedef boost::make_recursive_variant< null , std::string , double , std::map<std::string, boost::recursive_variant_> , std::vector<boost::recursive_variant_> , bool >::type value;
I'd use this method, it's clearly the cleanest. I don't understand what's your problem with it.
As I had feared, and as http://news.gmane.org/find-root.php?message_id=%3cm2objlggaw.fsf%40pluto.lua... demonstrates, extra dynamic allocations will be used to store maps and vectors (or anything at all?) in the variant.
Why not fix the implementation then instead of writing hacks? Of course, the code of variant is horrible enough to make it very difficult to do anything with it.