
On 03.12.2013 00:01, Krzysztof Czainski wrote:
2013/12/2 Antony Polukhin <antoshkka@gmail.com <mailto:antoshkka@gmail.com>>
You are absolutely right: ValueType&& any_cast(any&&) was not a good idea and it may break code that accepts result by const reference. Making it ValueType any_cast(any&&) would be more correct.
I'll fix that as soon as the migration to the GIT will be finished.
Great thanks for finding, investigating and reporting this issue!
Created ticket #9462 : https://svn.boost.org/trac/boost/ticket/9462
Thanks a lot!
That said, what do you gain by doing: const auto& vec = boost::any_cast<std::vector<int>>(makeVec()); instead of const auto vec = boost::any_cast<std::vector<int>>(makeVec()); ?
Regards, Kris
In C++11 with a moveable type, probably not much. I don't quite remember why I wrote the code like this - it could have been out of habit since in C++98 using a reference may save a copy, though I guess an optimizing compiler had already been allowed to elide it. Regards, Arne