lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

> If more people ask, then probably because it's so uncommon. Make and 
> build tools certainly wouldn't use the c++ compiler unless you force 
> to, 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.