Просто замените круглые скобки на фигурные в списке инициализации:
пример.
Пустой список аргументов не может быть передан в конструктор через круглые скобки - иначе это будет эквивалентно строке
MyClass value();
- а это уже объявление функции. Из-за этого пустой список аргументов интерпретироваться как пустой список инициализации, но пустой список инициализации опять же нельзя передать в конструктор без аргументов, используя круглые скобки, т.к. один аргумент всё-таки есть. Но при использовании фигурных скобок список инициализации нормально вызывает конструктор без аргументов. При этом неявное преобразование из пустого списка инициализации в MyClass возможно - неявно вызывается конструктор без аргументов:
void foo(MyType2&&){ }
foo({}); // Компилируется
А значит строка
MyClass({})
преобразует
{}
во временный объект
MyClass
, а его попытается передать в удалённый конструктор перемещения
MyClass