|
|
||
|
-ak
If more people ask, then probably because it's so uncommon. Make andotherbuild tools certainly wouldn't use the c++ compiler unless you forcethemto, and why you wanted to do that, I don't know. So why allow that?
Because you might be able to take advantage of C++ features. You might, for example, be developing on a platform where C++ exception handling is incompatible with C setjmp()/longjmp() exception handling; compiling Lua as C++ may avoid problems with callbacks from C++ code. (In fact, modifying Lua to use exceptions instead of setjmp()/longjmp() is quite simple, and makes things a bit cleaner.)
And if you really want to allow it, make sure people are aware of what they are doing (making a lib that won't work with plain C), and have them explicitly #define a variable (which could then also disable the extern "C" part).
Or, perhaps even better, provide a make target that builds C++ librarys with different names.
I think it would also be nice to distribute a make template for user projects. I'm sure we all have such things.
Really. Haven't seen a library in years that didn't have a __cplusplus encapsulated extern "C", and I've seen my share.
That's probably because most libraries don't trust themselves to compile in C++. Kudos to the Lua team for writing clean code.