Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Exclude cpp equality operators from
extern "C"
Summary: `extern "C"` disables name mangling, hence input parameter types does not influence the name. That makes it impossible to have several equality operators with `extern "C"` linkage (for different types). One such operator is defined in Windows SDK, in `guiddef.h`. It in turn is included in `winnt.h` inside `extern "C" { ... }` block. Trying to compile file which both is dependent both on `winnt.h` and `Yoga.h` results in: ``` Yoga.h(50): error C2733: 'operator ==': second C linkage of overloaded function not allowed guiddef.h(192): note: see declaration of 'operator ==' ``` In general it doesn't make much sense to have cpp specific operator to have `extern "C"` linkage, so the change doesn't introduce any controlling flag (mangling on/off). Note that it's breaking binary compatibility and yoga library should be rebuilt if those operators are used. Reviewed By: milend Differential Revision: D10418395 fbshipit-source-id: 2f1cccff26165e638b9a07eece07d94fccfa5e5a
- Loading branch information