2013/8/4 gast128
Dear all,
I get a compilation error with Boost.Variant (which compiles fine on previous releases) with vstudio 2010 when a function returns a const Boost.Variant, e.g.:
typedef boost::variant
Variant; const Variant GetVar() { return Variant(); }
void TestVariantDnc() { const Variant var = GetVar(); }
This gives error C2666 ('boost::variant
::convert_construct' : 3 overloads have similar conversions').
I think this is an interesting example. For a copyable and movable type T: const T f(); int main() { T t = f(); //??? Should this: a) not compile? (like in the variant example above) b) use the copy constructor instead of moving? c) move anyway? Looks like this is caused by move-emulation for variant, isn't it? Regards, Kris