Fixed to use native C++ instead of C++/CX although it does require significantly more code, it goes along with the spirit of keeping the project in native C++
Update system.cpp
Cleaned up whitespace, removed redundant code and added edge cases for string cleanup
Update system.cpp
Fixed compiler warning over comma operator clause
Update system.cpp
NULL initialization
Update system.cpp
Fixed use of WindowsGetStringRawBuffer which returns internal pointer to buffer
Update system.cpp
Support C++/CX and native C++ through conditional compilation. Fixed style - long lines, comma operators, long conditional. Optimized string usage to use reference.
Update system.cpp
Fixed conditional compilation around include and library
Update system.cpp
Fixed trailing space
Update system.cpp
Cleaned up whitespace, removed redundant code and added edge cases for string cleanup
Update system.cpp
Fixed compiler warning over comma operator clause
Update system.cpp
NULL initialization
Update system.cpp
Fixed use of WindowsGetStringRawBuffer which returns internal pointer to buffer
Update system.cpp
Support C++/CX and native C++ through conditional compilation. Fixed style - long lines, comma operators, long conditional. Optimized string usage to use reference.
Update system.cpp
Fixed conditional compilation around include and library
Update system.cpp
Fixed trailing space
Note that since String is a reference to an immutable string,
this doesn't actually change the string; it just replaces *this
with a reference to the concatenated string.
_InterlockedExchangeAdd is a Visual Studio intrinsic that's available
for all architectures and in all VS versions that we care about. It's also
faster than the underscore-less function, since it's an intrinsic.
We also don't need to declare it ourselves.
It is, however, a Visual Studio-specific intrinsic, so I changed the
preprocessing condition accordingly.
Fixes <http://code.opencv.org/issues/3365>.