On Thu, Jan 15, 2004 at 04:51:48PM +0300, Alexander V. Lukyanov wrote: > > #include <string.h> > > void func( const char **p ) { } > > main() > > { > > char *str = strdup("abc"); > > func( &str ); > > } > > > > test.cc:6: error: invalid conversion from `char**' to `const char**' > > It's actually the reverse. I.e. iconv on your system is declared as > iconv(...,char **inbuf,...) > > while correct prototype is > iconv(...,const char **inbuf,...)
Not inherently, since then you couldn't pass a pointer to a buffer that *isn't* const, without another cast. That's what I was showing. Neither is correct--the desired constness can't be expressed in C++. -- Glenn Maynard