Но если я в функции заюзаю какой-то метод/поле у объекта, который концепт не проверяет, поведение будет аналогично шаблонам: работает, пока кто-то не подсунет “плохой” тип для инстанцирования. Почему концепты не работают как интерфейсы в java/трейты в расте?
сейчас — ничего текущие концепты не просто так начинались как concepts-lite
А есть какие-то бумаги на усложнения?
Самое гиморное, что концепты нормально работают, когда тип полностью определен. И нихрена не работают когда только декларирован (неполный). Из за этого приходится играть в пятнашки с типами. И все равно очень глюкаво выходит. Лучше бы они сделали концепт на предварительное декларирование. В потом пишешь class concept foo{...} И все. От то был бы концепт. А так насмешка какая то.
так концепты это ограничения над типами, если у вас тип не определён то не очень понятно, что вы про него можете сказать
Вот я и хочу описать ограничения, а потом при определении тип обязан этому ограничению соответствовать. Причем что рекварес над неопределенными типами невсегда даёт ошибку, а иногда тихо отходит в сторону и результат малопредсказуемый получается. Не жёстко все как-то, хлипко..
у вас не тип обязан, а какое-то место где он используется, если вы хотите чтобы тип был изначально ограничен то вы просто так его и пишите
Вы не понимаете. Вот к примеру есть тип А и тип В и они как то друг на друга ссылаются. Мы эту ситуацию разруливаем через предварительное декларирование. А теперь представьте что у этих типов есть шаблонные методы и они через зависят друг от друга через концепты в параметрах этих шаблонов Тогда получается фигня. Гцц строго всегда вываливает ошибку если в концерте неопределенный тип. МС ошибку не даёт и тихо выбрасывает шаблонный метод их кандидатов, а Сланг серединка на половинку - когда ругается, а когда проглотит. К сожалению я не могу привести строгий пример т.к. намаявшись удалил все и пошел другим путем Но осталось желание видеть концепт более чем просто как список ограничений. Концепт должен работать начиная с предварительного декларирования.
Обсуждают сегодня