That is what VS gives me:
Severity Code Description Project File Line Suppression State
Error C2445 result type of conditional expression is ambiguous: types 'const char [5]' and 'Upp::String' can be converted to multiple common types Editor c:\users\canis\dropbox\cpp\editor\editor\core\json.h 5
Error C2445 result type of conditional expression is ambiguous: types 'const char [5]' and 'Upp::String' can be converted to multiple common types Editor c:\users\canis\dropbox\cpp\editor\editor\core\json.h 4
and these I get when I explicitly include json.h in TheIde:
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (40): error C2872: 'JsonArray': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (16): note: could be 'JsonArray'
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (56): note: or 'Upp::JsonArray'
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (53): error C2872: 'JsonArray': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (30): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (30): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (31): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (31): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (32): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (32): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (33): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (33): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (34): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (34): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (35): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (35): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (36): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (36): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (37): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (37): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (38): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (38): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (43): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (43): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (44): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (44): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (45): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (45): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (46): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (46): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (47): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (47): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (48): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (48): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (49): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (49): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (50): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (50): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (51): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (51): error C2660: 'Json::CatRaw': function does not take 1 arguments
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (77): error C2872: 'Json': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (68): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (69): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (70): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (71): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (72): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (73): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (74): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (75): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (76): error C2668: 'AsJSON': ambiguous call to overloaded function
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (83): error C2872: 'Json': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (83): error C2872: 'JsonArray': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (115): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (121): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (194): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (195): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (196): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (197): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (198): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (199): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (200): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (201): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (202): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (205): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (228): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (257): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (284): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (314): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (320): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (326): error C2872: 'JsonIO': ambiguous symbol
C:\Users\canis\Dropbox\cpp\upp/uppsrc\core/json.h (347): error C2872: 'JsonIO': ambiguous symbol
Well, posting code would be nice too, but my first guess is that you #include "json.h" individually.