struct test_struct
{
test_struct() {}
~test_struct() {}
};
#include <vector>
#include <memory>
#include <cstdio>
int main()
{
printf("ctor begin\n");
{
std::vector<std::unique_ptr<test_struct>> test_vec;
const int count = 100000;
for (auto i = 0; i < count; i++) {
test_vec.emplace_back(new test_struct);
}
printf("dtor begin\n");
}
printf("dtor end\n");
}
Я использую VS2010 и обнаружил нелепую проблему с производительностью. Приведенный выше код хорошо работает как в отладочной, так и в релизной сборке (ctrl+f5), но когда отладчик подключен (f5), вызов dtor для класса unique_ptr невыносимо медленный. Результирующий машинный код довольно оптимизирован, поэтому я не ожидаю, что это проблема компилятора, а не отладчика, но я не знаю, как с этим бороться. Мой вопрос: