This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: const qualifier on function return types.


Lowell Johnson writes:
 >   cc-3303 cc: WARNING File = ../gsl/gsl_vector_double.h, Line = 78
 >     A type qualifier on a return type is meaningless.
 >
 > I searched the mailing list archive and saw a short discussion of
 > this and whether it is ANSI C.  I didn't see any mention of the
 > reason for applying the const qualifier.
 >  What is the purpose of applying a const qualifier to a return
 > value?  Is it so that we can see the return value but not change
 > it?

That was the intention, but it doesn't work.  The const on those
return types is meaningless, as the compiler says.

The cause of the warnings is functions like

  const gsl_vector gsl_vector_const_view (const gsl_vector * v, ..)

The logic behind the return type was to preserve constness when
creating vector views, so that a view of a "const gsl_vector *" would
also be const.  It doesn't actually work because the views are
returned as structs and C doesn't preserve constness when copying
structs.

I'll have to do something about it .. it is unsatisfactory right now.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]