Std :: bad_function_call при вызове std :: swap в Visual StudioC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std :: bad_function_call при вызове std :: swap в Visual Studio

Сообщение Anonymous »

Я пытаюсь перенести свой код из Linux в Windows. Однако с Visual Studio мой код сбивается со следующей ошибкой: < /p>

Microsoft C ++ Exception: std :: bad_function_call в местоположении памяти < /p>
< /blockquote>
Это мой код: < /p>
< />
Это мой код: < /p>
< />

Код: Выделить всё

#include 

class Foo {
public:
Foo(int) : m_deleter{ []() {} } {}
Foo(const Foo &) = delete;
Foo(Foo &&) = default;
Foo & operator=(const Foo &) = delete;
Foo & operator=(Foo &&) = default;
~Foo()
{
m_deleter();
}
private:
std::function m_deleter;
};

int main() {
Foo foo(1);
Foo bar(2);
std::swap(foo, bar);
}
он сбои, когда я использую std :: swap . В Linux это сработало безупречно. Что я делаю не так и почему на работе дома с Кланг (3.5).
Редактировать: Оказывается, он сбивается с визуальной студией 2015 и GCC 4.9.2, но не с Clang 3.5.

Подробнее здесь: https://stackoverflow.com/questions/289 ... ual-studio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»