170 похожих чатов

Всем привет! Есть (не уверен, что правильно сделанный, но уж какой

есть) вот такой базовый класс:

class Component {
public:
Component() = default;
virtual ~Component() = default;

//…

Component(const Component& other) = delete;
Component(Component&& other) noexcept = default;
Component& operator=(const Component& other) = delete;
Component& operator=(Component&& other) noexcept = default;
};


вопрос: почему из его наследников нельзя создать std::tuple?

class Foo : public Component {
public:
Foo() { }
~Foo() { }
};
std::tuple foo{Component{}}; // ERROR - no matching constructor

8 ответов

7 просмотров

Мув-конструктор у Foo удалён, также как и копи. Явно пропиши Foo(Foo&&) = default;

Anton-Semenov Автор вопроса

спасибо! Да, так работает (можно даже снять изначально заданный noexcept, кстати), но тогда вопрос - а почему? получается, так или иначе, от явного прописывания rule 5 не избавиться? Хотелось бы ничего не указывать явно, конечно

интересно, в годболте на gcc ошибку не выдает

Anton-Semenov Автор вопроса
.
интересно, в годболте на gcc ошибку не выдает

у меня apple clang, но подозреваю что и с неэппловским воспроизведется. Кстати да, дико извиняюсь что изначально на годболт не закинул, я что-то думал что слишком простой код, чтобы кто-то захотел его компилировать =)

Anton Semenov
у меня apple clang, но подозреваю что и с неэпплов...

может я не так ваш код скопировал? 😆 https://godbolt.org/z/z5hMPfo3b

наследника? std::tuple foo{Component{}}; может тут должно быть Foo а не Component?

Anton-Semenov Автор вопроса
Алексей (lewa_j) Иванчуков
наследника? std::tuple foo{Component{}}; может тут...

Да, конечно, опечатался. С базовым классом работает и так.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
8
Добрый день! Хочу спросить совета. Хочется в скрипт добавить некую конструкцию, что скрипт создал файл, который нужно потом скопировать в определенное место. Нашел такой сп...
Mikhail
4
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
in telegram can i have multiple username? so instead of having multiple account for example one for work, one for friend and one for family with three diff numbers. using one ...
Mr Thieves
6
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
Карта сайта