5
最近我已将项目升级到Visual Studio 2013.因此initializer_list功能现在可用。我需要在单元测试中初始化测试数据。但我使用嵌套的initialize_lists获取内存泄漏。为什么嵌套的initializer_list导致内存泄漏
#include <memory>
#include <boost/test/unit_test.hpp>
struct Test_Fixture
{
Test_Fixture()
:test_data({
std::make_shared<std::vector<int>>(std::vector<int>{ 0, 1 }),
std::make_shared<std::vector<int>>(std::vector<int>{ 2, 3, 4 })
}) {}
std::vector<std::shared_ptr<std::vector<int>>> test_data;
};
BOOST_FIXTURE_TEST_CASE(testcase_1, Test_Fixture)
{
BOOST_CHECK(true);
}
输出:
1> Detected memory leaks!
1> Dumping objects ->
1> {1593} normal block at 0x0051A6E8, 8 bytes long.
1> Data: <` C > 60 F6 43 00 00 00 00 00
1> Object dump complete.
也许与[此错误]相关(https://connect.microsoft.com/VisualStudio/feedback/details/807610/first-element-of-vector-is-destroyed-initializing-from-initializer-list) ? – dyp
@DyP这两个错误都阻止我使用此功能。 :(谢谢。 – user3024877
可以确认问题。 – tmanthey