Boost logo

Boost Users :

Subject: Re: [Boost-users] [variant][mpl] silly mistake in make_variant_over usage?
From: Agustín K-ballo Bergé (kaballo86_at_[hidden])
Date: 2015-08-28 21:47:42

On 8/28/2015 10:35 PM, Nat Goodspeed wrote:
> The following program fails to compile (148 lines of errors, will
> paste on request) with
> g++ (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2 in -std=c++11 mode.
> This is using Boost 1.59.0. Command line:
> g++ -std=c++11 -I ~/boost_1_59_0 -o make_variant make_variant.cpp
> I assume I'm making a simple error. I would appreciate your pointing
> it out. Thank you!
> (Is there a simpler way to obtain a variant of the result types of
> passed functions? I was hoping I could just write: boost::variant<
> std::result_of<Fns>::type... >.)

This seems to work:

     typedef typename boost::make_variant_over<
             typename std::result_of<Fns()>::type...> >::type return_t;

So probably this would to:

     typedef boost::variant<
         typename std::result_of<Fns()>::type...> >::type return_t;

Except that the last one might be problematic with repeated return
types. The documentation would know for sure.


Agustín K-ballo Bergé.-

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at