From: William S F. <ws...@fu...> - 2007-03-28 21:40:40
|
Reed Hedges wrote: > What do people think of a new wrapper language for Swig-- a simple C wrapper > around any C++ constructions? Having a C facade for a C++ library can be > useful for further wrapping or integration into other stuff, or for people who > want to or need to use only C when using your library. > > Would it be at all useful? > > I imagine it ought to be sort of simple to create? It would do this, I think: > > * Define all classes as typedefs for void * > * Methods become functions prefixed with the class name, and accept a class > wrapper void* as its first argument. > * Whenever an object is returned from a function or passed back as an output > argument, it is simply cast to one of the typedef void*'s. > * Public nonmethod members need accessor functions generated. Return a pointer > to the member, unless it's already a pointer then we can return the thing > pointed to or a pointer to the pointer. > * No idea how to do directors > * A nice feature might be the ability to declare a particular class as a > de-facto singleton, and set a global static instance in a setup or init function > that all further functions use (either forever, or until changed by the user. > There could maybe be a stack of such objects even.) > > e.g. > Yes it would be possible and useful. Likewise a C++ wrapper of C code. This suggestion comes up every few months on the mailing list, but as of yet, no-one has implemented a new SWIG language module for this. William |