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

Привет. Концепты проверяют только наличие того, что в них указано.

Но если я в функции заюзаю какой-то метод/поле у объекта, который концепт не проверяет, поведение будет аналогично шаблонам: работает, пока кто-то не подсунет “плохой” тип для инстанцирования. Почему концепты не работают как интерфейсы в java/трейты в расте?

7 ответов

27 просмотров

сейчас — ничего текущие концепты не просто так начинались как concepts-lite

Vanya-Khodor Автор вопроса

Самое гиморное, что концепты нормально работают, когда тип полностью определен. И нихрена не работают когда только декларирован (неполный). Из за этого приходится играть в пятнашки с типами. И все равно очень глюкаво выходит. Лучше бы они сделали концепт на предварительное декларирование. В потом пишешь class concept foo{...} И все. От то был бы концепт. А так насмешка какая то.

Int Unsigned
Самое гиморное, что концепты нормально работают, к...

так концепты это ограничения над типами, если у вас тип не определён то не очень понятно, что вы про него можете сказать

Denis P
так концепты это ограничения над типами, если у ва...

Вот я и хочу описать ограничения, а потом при определении тип обязан этому ограничению соответствовать. Причем что рекварес над неопределенными типами невсегда даёт ошибку, а иногда тихо отходит в сторону и результат малопредсказуемый получается. Не жёстко все как-то, хлипко..

Int Unsigned
Вот я и хочу описать ограничения, а потом при опре...

у вас не тип обязан, а какое-то место где он используется, если вы хотите чтобы тип был изначально ограничен то вы просто так его и пишите

Denis P
у вас не тип обязан, а какое-то место где он испол...

Вы не понимаете. Вот к примеру есть тип А и тип В и они как то друг на друга ссылаются. Мы эту ситуацию разруливаем через предварительное декларирование. А теперь представьте что у этих типов есть шаблонные методы и они через зависят друг от друга через концепты в параметрах этих шаблонов Тогда получается фигня. Гцц строго всегда вываливает ошибку если в концерте неопределенный тип. МС ошибку не даёт и тихо выбрасывает шаблонный метод их кандидатов, а Сланг серединка на половинку - когда ругается, а когда проглотит. К сожалению я не могу привести строгий пример т.к. намаявшись удалил все и пошел другим путем Но осталось желание видеть концепт более чем просто как список ограничений. Концепт должен работать начиная с предварительного декларирования.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта