У меня есть класс, в котором VS 2015 не генерировал перемещение ctor, а теперь VS 2015 Update 1 генерирует его, это вызывает проблему двоичной совместимости, не уверен, какая версия делает правильно.
// MyLib
struct Shared
{
virtual ~Shared(){}
}
struct Callback : public Shared
{
virtual void response() = 0;
}
// App
struct CallbackI : public Callback
{
virtual void response(){}
}
Когда я создаю MyLib с VS 2015 и приложением с VS 2015, обновление 1 связывает приложение со сбоем из-за отсутствующего символа, ссылающегося на оператор присваивания перемещения для базового класса обратного вызова.
Мне кажется, что VS 2015 не генерирует эти операторы, а VS 2015 Update 1 — да, но какая версия компилятора здесь?