Эта программа, скомпилированная с VC12 (в RTM RTU), [1] приводит к сбою (во всех конфигурациях сборки), когда это действительно не должно:
#include <string>
void foo(std::string const& oops = {})
{
}
int main()
{
foo();
}
Я знаю о двух молчащих ошибках badegegen, которые связаны с может:
- https://connect.microsoft.com/VisualStudio/feedback/details/800364/initializer-list-calls-object-destructor-twice
- http://connect.microsoft.com/VisualStudio/feedback/details/800104/
Честно говоря, я думаю, что это разные. Кто-нибудь знает
- есть ли активная отслеживаемая ошибка для подключения для этого
- существует ли способ обхода (или явное описание ситуации, которая вызывает эту ошибку, поэтому мы можем ее искать/избегать в нашей базе кода)?
[1] Просто создайте пустой проект, используя мастер-приложение консоли С++. Для простоты отключите предварительно скомпилированные заголовки и оставьте все значения по умолчанию: http://i.stack.imgur.com/rrrnV.png