You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В настоящий момент существуют проблемы с некоторыми операциями над ДК, в частности:
Копирование ДК разрешается, но если внутрилежащий объект некопируем, то в процессе копирования ДК выбрасывается исключение.
Сравнение двух ДК невозможно.
Предлагаемое решение
Ввести свойства ДК, передаваемые ему в качестве параметров шаблона, которые будут регламентировать дополнительные операции: burst::dynamic_tuple<burst::copyable>, burst::bynamic_tuple<burst::comparable> (интерфейс ещё нужно продумать) и т.п.
Соответственно, если ДК некопируем, то в него невозможно будет положить некопируемый объект, а если копируем, то возможно.
Аналогично и с операцией сравнения и, возможно, какими-то другими операциями.
The text was updated successfully, but these errors were encountered:
@kotbegemot Вся соль в том, что в момент конструирования ДК мы ещё не знаем, какие объекты в нём будут лежать, потому что туда можно положить вообще всё, что угодно. Информация об объекте, который кладётся в ДК узнаётся только собственно в момент укладки. Естественно, эти объекты могут сильно отличаться по свойствам: один копируем, другой нет, один умеет равенство, другой нет, один умеет "меньше", другой нет и т.д. и т.п. в любых комбинациях.
Далее, при создании ДК мы ещё не знаем, какие операции мы хотим проделывать с самим ДК. Будем ли мы его копировать, переносить, сравнивать или что-либо ещё. А от этого по идее и должно зависеть то, какие объекты в него можно сложить.
Эта неопределённость и рождает указанную проблему.
Поэтому в качестве решения я и хочу при создании ДК регламентировать операции, которые я с ним буду иметь право проводить, а складываемые объекты будут проверяться на соответствие этим операциям.
Если у тебя есть другие предложения, выскажи их немедленно :) .
Проблема
В настоящий момент существуют проблемы с некоторыми операциями над ДК, в частности:
Предлагаемое решение
Ввести свойства ДК, передаваемые ему в качестве параметров шаблона, которые будут регламентировать дополнительные операции:
burst::dynamic_tuple<burst::copyable>
,burst::bynamic_tuple<burst::comparable>
(интерфейс ещё нужно продумать) и т.п.Соответственно, если ДК некопируем, то в него невозможно будет положить некопируемый объект, а если копируем, то возможно.
Аналогично и с операцией сравнения и, возможно, какими-то другими операциями.
The text was updated successfully, but these errors were encountered: