On 07/18/2012 08:09 PM, Lubos Lunak wrote:
  What you want is broken. It is definitely broken from the theoretical point
of view, since modifying the items may change the sort order.

While one can argue that it is broken, in practice I would not bother trying too hard to make the code safe against shooting-in-one's-foot at the expense of simplicity. Whether or not making non-const element access available for sorted_vector<T,C> is safe depends on both T (element type) and C (comparison function), and e.g. adding a specialization so that sorted_vector<T*> only gives access to T const* can be OK or overly restrictive.

Quoting an answer I inadvertently only sent to Noel directly:

"Yeah, the 'only give const element access to avoid element modifications that invalidate container invariants' strategy is apparently not perfect.

"If you do need non-const access, there's no way around it than to offer it---and being careful not to accidentally invalidate the container's sortedness."

Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to