История изменений
Исправление ncuxer, (текущая версия) :
Это я был, если что.
Вот смотри, случай из реального проекта, - есть структура для кривых Безье. Я захотел для удобства добавить в структуру функцию float length() const, которая вычисляет длину кривой. Делать ее свободной float bezierLength(const bezierCurve &bc) не хочу - это будет лишнее засорение глобального неймспейса. Потом подумал, что в общем-то хорошо бы кэшировать ее, так как какая-то кривая один раз создается, а потом length используется много раз для отрисовки, и добавил приватное поле mutable float m_cachedLength для ленивой инициализации. Понимаю, что получается уродство - структура с приватным полем, но как исправить не знаю.
На каком этапе я пошел не туда? Твои идеи как сделать лучше?
Исправление ncuxer, :
Это я был, если что.
Вот смотри, случай из реального проекта, - есть структура для кривых Безье. Я захотел для удобства добавить в структуру функцию float length(), которая вычисляет длину кривой. Делать ее свободной float bezierLength(bezierCurve *bc) не хочу - это будет лишнее засорение глобального неймспейса. Потом подумал, что в общем-то хорошо бы кэшировать ее, так как какая-то кривая один раз создается, а потом length используется много раз для отрисовки, и добавил приватное поле mutable float m_cachedLength. Понимаю, что получается уродство - структура с приватным полем, но как исправить не знаю.
На каком этапе я пошел не туда? Твои идеи как сделать лучше?
Исходная версия ncuxer, :
Это я был, если что.
Вот смотри, случай из реального проекта, - есть структура для кривых Безье. Я захотел для удобства добавить в структуру функцию float length(), которая вычисляет длину кривой. Делать ее свободной float bezierLength(bezierCurve *bc) не хочу - это будет лишнее засорение глобального неймспейса. Потом подумал, что в общем-то хорошо бы кэшировать ее, так как какая-то кривая один раз создается, а потом length используется много раз для отрисовки, и добавил приватное поле mutable float m_cachedLength. Понимаю, что получается уродство - структура с приватным полем, но как исправить не знаю.
Твои идеи?