Re[14]: Junk in — junk out
От: Qbit86 Кипр
Дата: 24.03.17 09:38
Оценка:
> Ты опять мне пытаешься доказать, что такие алгоритмы, корректно работающие для вэлью и реф типов, всё-таки, есть?

Ты же писал про «поиски классов таких алгоритмов, которые, таки, работают в обоих случаях»? Вот я тебе такой класс предоставляю.

> Я могу в прикладном виде описать гарантии, которые не дадут мне привести ref-объект в невалидное состояние.

> Для value-типов ср-в обеспечения таких гарантий нет.

Это всё находится снаружи обобщённой библиотеки; на её код не влияет, сможешь ли ты вне библиотеки выразить те или иные гарантии. Если бы язык позволял выразить требование non-zero-initialized переданных аргументов, функция `Sum` всё равно не ограничивала бы свои аргументы этим требованием, потому что в общем случае передача zero-initialized-объекта того же `TMonoid` — just fine. Конечно, автор может реализовать констрейнты конкретными структурами так, что zero-initialized окажется невалидным. Но библиотека не должна отвергать все zero-initialized экземпляры на этом основании.

> Собсно, моё разочарование в дотнете больше было не от его тормознуточти, а от непоследовательной системы типов


Поэтому ты вернулся в «лоно C++», где получить невалидный объект не то что с нулями, а просто с рандомным мусором — проще простого? Независимо от того, что там у него за конструкторы пытаются обеспечить какие-то там гарантии.
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.