From: Rafael L. <rla...@us...> - 2004-06-02 09:44:20
|
* Andrew Ross <and...@us...> [2004-06-02 09:37]: > While tidying up up some of the examples recently I noticed that the C++ > header file plstream.h includes plplot.h. Currently it needs to do that > because it needs the various constants, pltr? functions etc. This is all > very well but it does clutter the namespace a little - particularly with > both the C and the C++ versions of the API functions being available. > Potentially this could lead to confusion, although currently nearly all > the C++ versions in plstream just call the related C version. > > I guess the "best" solution would be to split the constants etc out from > the C API definitions. Only the constants need then be included by > plstream.h, and they could be included either in the plstream of in > their own namespace (plplot maybe?). This is going to require some > fairly major rejigging of plplot.h and probably plstream.h though. Since > this could have a big impact I wanted to discuss it on the list first. > > Of course this also has some API implications since might require code > to be changed to use the new namespace. I would propose we made the > necessary structural changes, but for now the default is the old > behaviour. The new, tighter, namespace scheme could be enabled via a > define perhaps. If we change the C++ examples to use this then hopefully > it will encourage people to adopt it before the C++ API becomes too > widespread. At some later stage when we are making other API changes we > could remove support for the old, laxer, scheme. > > Any thoughts? I have some difficulty in evaluating the impact of your changes. I need to see the code in order to understand all the issues involved. Since we have a release schedule in one month from now, it would be inappropriate making high-impact changes in HEAD as you are suggesting. Could you please create a CVS branch and work there? Otherwise, I can create the branch for you if you send the patch file against HEAD to me. -- Rafael |