Does the standard say anything about limitations on functions used with extern "C"
? In a questions of mine that makes no sense to anyone else. It appears that when i have a complex class gcc breaks (runtime oddities/errors) if i call a non default constructor (anything with a parameter i believe) and msvc seems to break if it isn't a POD (however i could still use my constructors and it ran fine).
I suspect all the undefined behavior happens because a C library is calling my C++ which returns a type that is exactly the size of a pointer but has operator overloading and constructors. I don't know why it happens and gcc certainly doesn't give me any warnings.
Does extern "C" force limitations on my code? All i know is exceptions can't go through them which is fine as i don't use them in this code. What are other limitations?
-edit- Related: Reproducible: Why does passing this object in C break my code?