react-native/ReactCommon
Alexey Kozhevnikov d9792b3e59 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
2018-10-18 08:44:45 -07:00
..
cxxreact Get RNTester to compile and run 2018-10-18 01:06:24 -07:00
fabric Fabric: Making EventEmitter reenableable 2018-10-16 12:29:33 -07:00
jsi Get RNTester to compile and run 2018-10-18 01:06:24 -07:00
jsiexecutor Get RNTester to compile and run 2018-10-18 01:06:24 -07:00
jsinspector Get RNTester to compile and run 2018-10-18 01:06:24 -07:00
microprofiler Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00
yoga Exclude cpp equality operators from `extern "C"` 2018-10-18 08:44:45 -07:00
.clang-format Fabric: Enabling clang-format for the rest of Fabric 2018-10-09 16:31:48 -07:00