[zeromq-dev] why do czmq methods take a char* parameter and not const char*?

Pieter Hintjens ph at imatix.com
Tue Mar 11 16:29:26 CET 2014


Heh, thanks for the patience. I was wrong, the code was poor, now it's
better and the world is just a little bit improved :-)

On Tue, Mar 11, 2014 at 2:41 PM, Turkey Breast <turkeybreast at yahoo.com> wrote:
> wow! thank you for this patch pieter. much love :)
>
>
>
>
>
> On Sunday, March 9, 2014 9:35 PM, Pieter Hintjens <ph at imatix.com> wrote:
> I've done this for all char * arguments:
>
> https://github.com/zeromq/czmq/pull/388
>
>
> On Sun, Mar 9, 2014 at 8:31 PM, Pieter Hintjens <ph at imatix.com> wrote:
>> I'll fix the obvious char * arguments at least...
>>
>> On Sun, Mar 9, 2014 at 7:28 PM, Lindley French <lindleyf at gmail.com> wrote:
>>> Consistency is less important than correctness. If it doesn't make sense to
>>> make a FILE* const, then don't. The question should not be "is this
>>> completely consistent," but "is this function going to modify this
>>> parameter?". If the answer is no, and especially if it doesn't make sense
>>> for the parameter to be modifiable from an interface perspective, then const
>>> it.
>>>
>>>
>>> On Sat, Mar 8, 2014 at 6:40 PM, Pieter Hintjens <ph at imatix.com> wrote:
>>>>
>>>> On Sat, Mar 8, 2014 at 2:11 PM, Turkey Breast <turkeybreast at yahoo.com>
>>>> wrote:
>>>>
>>>> > Can you give an example where adding const would break a method for
>>>> > existing users?
>>>>
>>>> You're right. Adding const breaks code downstream, not upstream. As
>>>> Lindley says, the problem is when it's applied inconsistently
>>>> (annoying casting from const char * to char *).
>>>>
>>>> Adding const for all char * arguments (CZMQ never modifies char *
>>>> arguments) would be OK. It's still inconsistent with other pointer
>>>> arguments and IMO confusing (what does it mean to pass a "const FILE
>>>> *" argument, for instance?) But it'd be fine.
>>>>
>>>> -Pieter
>>>> _______________________________________________
>>>> zeromq-dev mailing list
>>>> zeromq-dev at lists.zeromq.org
>>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev



More information about the zeromq-dev mailing list