2013-11-23 31 views
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. 
+0

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

+0

@DyP her iki hata da bu özelliği kullanmamı engelliyor. :(Teşekkür ederiz – user3024877

+0

Sorunu onaylayabilir. – tmanthey

cevap

1

bir derleyici böcek gibi görünüyor: See here

Bu özellik listesi öğeleri olarak sınıflı sevmez. See here

İlgili konular