The `StringRefType` assignment operator overload
leads to a compiler error on MSVC 2005 and later:
..\..\include\rapidjson/document.h(504) : error C2951: template declarations are only permitted at global, namespace, or class scope
Drop the unneeded 'template' keyword here.
MSVC with enabled RAPIDJSON_SSE2/RAPIDJSON_SSE42 requires the explicit
definition of the `_BitScanForward` intrinsic. This can be reliably
ensured by including "intrin.h" and properly marking '_BitScanForward'
as intrinsic.
Confirmed on MSVC 2005, 2008.
Should fix https://code.google.com/p/rapidjson/issues/detail?id=96
With the new string handling API, the constructor taking a `bool`
parameter matches in some unwanted cases, as pointers can be casted
to `bool` implicitly.
Add a SFINAE helper to this constructor to avoid matching arbitrary
pointers. To avoid confusion for the user, this mechanism is hidden
from the Doxygen documentation.
In this patch, a script 'build/travis-doxygen.sh' is added to
build and push the Doxygen documentation to the GitHub pages at
https://miloyip.githib.io/rapidjson.
The script exits gracefully, if the build is requested for
- a branch other than 'master'
- a pull-request
- a job (i.e. CI configuration) other than "1"
In case the "secure variables" are not available, only the final upload
is skipped, in order to allow testing of the script's basic functionality.
Update .travis.yml to call the script.
Warning push/pop support has been added to GCC in version 4.6.0,
and pragmas to ignore certain warnings are present since 4.2.0.
This patch hides the compiler-specific warning push/pop/disable
pragmas behind a macro-based implementation (currently for MSVC and
clang /GCC.
This avoids warnings, as seen e.g. on GCC 4.4:
../../include/rapidjson/document.h:14: error: expected [error|warning|ignored] after ‘#pragma GCC diagnostic’
and earlier versions complaining about unknown pragmas being ignored.
Note: unittest.h and perftest.h need to check for compilers
explicitly, as rapidjson.h is not included there.