7
不能爲我的生命明白爲什麼失敗:爲什麼boost :: equals要求範圍是可複製的?
#include <vector>
#include "boost/algorithm/string/predicate.hpp"
struct Test
:
public std::vector<int>
{
Test() { }
Test(const Test&) { assert(false); }
};
int main()
{
Test a;
Test b;
boost::algorithm::equals(a, b);
return 0;
}
輸出:
$ g++ boostEqualsCopyDemo.cpp -I /usr/include/boost-1_47
$ a.out
a.out: boostEqualsCopyDemo.cpp:10: Test::Test(const Test&): Assertion `false' failed.
Aborted (core dumped)
我試着挖過升壓代碼,但它使我目瞪口呆。這似乎是荒謬的;如此浪費和不必要。這是怎麼回事?
有關此問題的錯誤報告,請參閱https://svn.boost.org/trac/boost/ticket/6149。 – 2011-12-20 09:29:35
此修復程序現在位於助力幹線中,應該是1.50版本的一部分:https://svn.boost.org/trac/boost/ticket/6149#comment:2 – 2012-04-16 05:37:43