5
Son zamanlarda projemi Visual Studio 2013'e yükselttim. Böylece initializer_list özelliği kullanıma sunulmuştur. Birim testlerimde test verilerini başlatmam gerek. Ama yuvalanmış initialize_lists kullanarak bellek sızıntıları alıyorum.Yuvalanmış initializer_list bellek sızıntılarına neden neden
#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);
}
Çıktı:
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.
Belki de [bu hata] ile ilgili (https://connect.microsoft.com/VisualStudio/feedback/details/807610/first-element-of-vector-is-destroyed-initializing-from-initializer-list) ? – dyp
@DyP her iki hata da bu özelliği kullanmamı engelliyor. :(Teşekkür ederiz – user3024877
Sorunu onaylayabilir. – tmanthey