-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor to allow MSVC without #define NOMINMAX #905
Conversation
include/yaml-cpp/node/convert.h
Outdated
rhs = num; | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stray extra newline?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh yes one moment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
* Add YAML_CPP_INSTALL option for disabling install target (jbeder#624) (jbeder#625) - Option defaults to ON and setting it to OFF, disables install target generation * Don't stomp on build flags (jbeder#635) Let CMake handle the default optimizations for various configurations. We don't need to override them. In fact, overriding them makes it impossible for users to override them themselves. * Some small changes as a result of using a static analyzer (jbeder#643) * Removed an expression which is always true * The second expression (ch is space) is removed because the first one contains space 0x20 * nextEmptyLine is always false so it is removed from the expression * Fix float precision (jbeder#649) The issue is that numbers like 2.01 or 3.01 can not be precisely represented with binary floating point numbers. This replaces all occurrences of 'std::numeric_limits<T>::digits10 + 1' with 'std::numeric_limits<T>::max_digits10'. Background: Using 'std::numeric_limits<T>::digits10 + 1' is not precise enough. Converting a 'float' into a 'string' and back to a 'float' will not always produce the original 'float' value. To guarantee that the 'string' representation has sufficient precision the value 'std::numeric_limits<T>::max_digits10' has to be used. * Fix GCC-types flags appended on Clang-cl (jbeder#659) * Fix warning C4127 on Visual Studio (jbeder#672) Splitting the condition of the if statement containing `constant expression` eliminates warnings in Visual Studio with /W4. * Fix ninja build error. (jbeder#677) NDK now uses ninja for building but yaml-cpp would emit the “ninja: error: build.ninja:326: bad $-escape (literal $ must be written as $$)” error due to syntax error in the generated build.ninja file. Related issue: jbeder#630 * Add optional OnAnchor method to EventHandler (jbeder#530) ref jbeder#110 * Apply formatting/style tweaks to comply with compile time diagnostics for g++ and clang++ (jbeder#686) * Add compilation flags: -Wshadow -Weffc++ -pedantic -pedantic-errors * Delete implicit copy & move constructors & assignment operators in classes with pointer data members. * An exception to the above: Add default copy & move constructors & assignment operators for the Binary class. * Convert boolean RegEx operators to binary operators. * Initialize all members in all classes in ctors. * Let default ctor delegate to the converting ctor in Binary and RegEx * Don't change any tests except regex_test (as a result of the change to binary operators). Note: https://bugzilla.redhat.com/show_bug.cgi?id=1544675 makes -Weffc++ report a false positive in "include/yaml-cpp/node/impl.h". * Add MSVC Debugger Visualizer config for YAML::Node (jbeder#693) * Disallow moving for the Parser. It wouldn't have compiled anyways, since the Scanner and Directive objects inside it are incomplete types at the time of the move definitions. * Improve error messages on operator[] or as<> (jbeder#656) Invalid access via operator[] or as<> will now print the offending key, if possible. For example: a: x: 1 y: 2 node["a"]["z"].as<int>() will say that the key "z" was invalid. * Make sure output of NaN, Infinity and -Infinity is identical on all platforms (jbeder#717) Specifically, printing `.nan`, `.inf`, and `-.inf`, respectively, as per the spec section 10.2.1.4. * Use VERSION on the CMake project (jbeder#733) This sets the other variables: https://cmake.org/cmake/help/latest/command/project.html * Set C++ standard options in CMake per-target instead of globally (jbeder#735) Setting CMAKE_CXX_STANDARD and CMAKE_CXX_STANDARD_REQUIRED directly is problematic when including yaml-cpp as a subproject. The proper way is to set these per-target. * CMake: Prefix options with "YAML" and hide platform-specific options (jbeder#734) * CMake: Prefix options with "YAML" and hide platform-specific options When including yaml-cpp as a subproject, some option names can conflict with other projects. (1) Make sure the yaml-cpp options are prefixed with YAML (2) Hide platform-specific options when possible to avoid cluttering the cmake option list * Update docs for change from BUILD_SHARED_LIBS to YAML_BUILD_SHARED_LIBS * Static analysis fix: replace 0 and NULL with nullptr (jbeder#738) * Remove extraneous conversion from string -> c_str -> string (jbeder#739) * Fix shared lib build with new YAML_BUILD_SHARED_LIBS option (jbeder#737) * Update version to 0.6.3. * Refactor CMake to use more modern paradigms (jbeder#741) Remove 2.6-isms Remove 2.8-isms Bump CMake minimum version to 3.4 Disable some options when used as a subdirectory Use `CONFIGURE_DEPENDS` with `file(GLOB)` when possible Backport CMake 3.15's MSVC_RUNTIME_LIBRARY setting. Set all compile options as generator expressions. Set all find-package files to be installed to the correct file. Remove `export(PACKAGE)`, as this has been deprecated. Remove fat binary support Remove manual setting of iPhone settings. These should be set by parent projects. Remove use of ExternalProject for a local use Conditionally remove format target unless clang-format is found * Add bazel Support (jbeder#724) Example of how someone might consume yaml-cpp with bazel: cc_binary( name = "example", srcs = ["example.cc"], deps = ["@com_github_jbeder_yaml_cpp//:yaml-cpp"], ) * Fix `DEBUG_POSTFIX` property (jbeder#746) The generator expressions here are actually unnecessary, now that I think about it. This should fix jbeder#745 * CMake: Remove unused option YAML_APPLE_UNIVERSAL_BIN (jbeder#744) * Use cassert instead of old assert.h (jbeder#750) * Modernize: Use "default" for destructors and copy constructors (jbeder#751) * Pass std::string by const ref (jbeder#749) * Modernization: Use "override" when overriding base class methods (jbeder#753) * Modernize: Use "using" instead of "typedef" (jbeder#754) * Replace node's YAML_CPP_OPERATOR_BOOL macro with an explicit bool operator (jbeder#755) * Fix CMake 3.10 and below compatibility (jbeder#763) Add empty list of sources to add_library and add_executable. * Modernize: Use range-based for loops for readability (jbeder#762) Also run clang-format on these files as requested * Add documentation to readme (jbeder#768) * Default YAML_BUILD_SHARED_LIBS to BUILD_SHARED_LIBS :bug: Fixes jbeder#748 (jbeder#770) * Show test output on CI in Travis (jbeder#777) * Showing test output only on failure * Test commit to see the failed test * Now making sure that the tests pass with no output * Fix -Wmisleading-indentation warning when using gcc >= 6. (jbeder#779) This happens whenever in a macro you use some "if" block, and don't use curly braces {}, as the macro is expanded on a single line, not on several lines. So just add the missing curly braces to please gcc. In file included from /remote/users/mlamesch/CloneFromPlatinum/yamlcpp/osp/Yamlcpp/18-0-0-5/include/yaml-cpp/yaml.h:18, from src/TestYaml.cpp:2: /remote/users/mlamesch/CloneFromPlatinum/yamlcpp/osp/Yamlcpp/18-0-0-5/include/yaml-cpp/node/convert.h: In static member function static bool YAML::convert<int>::decode(const YAML::Node&, int&): /remote/users/mlamesch/CloneFromPlatinum/yamlcpp/osp/Yamlcpp/18-0-0-5/include/yaml-cpp/node/convert.h:139:1: error: this if clause does not guard... [-Werror=misleading-indentation] YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(int); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Adapt label postfix to fix build with Visual Studio (jbeder#782) * Remove redundant checks and add more unit tests (jbeder#783) * Small readability improvements in Parser Also add a test for a parser with no data * Use de-facto standard CMake namespace convention (jbeder#792) Change the namespace from yaml::yaml to yaml-cpp::yaml-cpp. * Change NULL to nullptr (jbeder#805) * Fix reading empty token stack with a node with properties but no scalar. E.g. `!2`. * Move the YAML_CPP_NOEXCEPT macro to include/yaml-cpp/noexcept.h (jbeder#813) This is in preparation for other patches that will make use of the macro. The patch also removes #undef:ing the macro after its been used to not make the header inclusion order critical. Otherwise, the new header would always have to be the last of the yaml-cpp headers to be included. * Make SettingChange and StreamCharSourcemove constructors and assignment operators noexcept (jbeder#808) The explicitly defaulted or implemented move constructors and assignment operators are made "noexcept". Bugfix: * src/stream.cpp Stream::Stream() char_traits::int_type intro[4] is now aggregate-initialized (to zero) to avoid UB. Minor changes: * Using std::isinf() and std::signbit() instead of comparing for equality with infinity. * src/streamcharsource.h: Added #include "stream.h". * src/stream.h: Forward declaring "class StreamCharSource". * Some implicit casting changed into static_cast's. Signed-off-by: Ted Lyngmo <[email protected]> * Add IsNull() check in test after reassignment (jbeder#814) * Fix Node::size() after removing node from sequence (jbeder#820) * Fix storing inf and NaN (jbeder#817) * Allow including yaml-cpp as system headers (jbeder#829) * Split conversion call that uses std::signbit with unsupported parameters with enable_if (jbeder#824) * Update Google Test to v1.10.0 (jbeder#840) This commit updates the version of Google Test from 1.8 to 1.10. * Remove uses of std::iterator (deprecated in C++17) (jbeder#839) * Pass a mark to BadSubscript exception (jbeder#843) It's clearly related to an existing node, so it can have a mark and give an error location. * Maintain order of nodes in sequences (jbeder#668) * Add NodeTest EqualRepresentationAfterMoveAssignment (jbeder#816) Add check that a move assigned Node gets the same representation as the moved-from Node had before the move. * Update travis config to use updated versions of OS and compilers. (jbeder#845) This fixes the linux/gcc error building Google Test with gcc 4.7: https://travis-ci.org/github/jbeder/yaml-cpp/jobs/668233706 * Fix 'comparison object must be invocable as const' (jbeder#846) * Fix stack overflow (jbeder#807) Fix stack overflow in HandleNode by explicitly limiting the depth of recursion. * Include wiki content into a doc folder (jbeder#850) * Copied Tutorial from Google Code wiki. * Initial Home page * Copied How To Parse A Document from Google Code wiki * Updated How To Parse A Document (markdown) * Updated How To Parse A Document (markdown) * Updated How To Parse A Document (Old API) (markdown) * Copied How To Emit YAML from Google Code wiki * Copied Breaking Changes from Google Code wiki * Copied Strings from Google Code wiki * Updated Strings (markdown) * Updated Home (markdown) * Fix typo. * Updated Breaking Changes (markdown) * Updated How To Parse A Document (Old API) (markdown) * Updated Breaking Changes (markdown) * Move wiki content to docs/ * Improve markdown and add colored code syntax Co-authored-by: Jesse Beder <[email protected]> * Rename "Home" to "index" in the doc (jbeder#851) This will allow hosting as Github Pages. * Set theme jekyll-theme-slate * Add Qt wrapper gist (jbeder#853) Add Qt wrapper gist to README as a third party contribution * Fix clang format (jbeder#854) Fix invocation of clang-format in CMakeLists and apply clang-format. * Make debug postfix optional (jbeder#856) Library debug postfix might not be suitable for cross platform project, and usually require extra work of link against prebuilt yaml-cpp. Generally, Xcode project output library to these directories: Debug Release Debug-iphoneos Release-iphoneos Debug-iphonesimulator Release-iphonesimulator Another Xcode project usually configured its build setting as follow, and expects library name to be same between Release and Debug LIBRARY_SEARCH_PATHS=$(CONFIGURATION)$(EFFECT_PLATFORM_NAME) OTHER_LDFLAGS= $(inherited) -lyaml-cpp * implement convert for standard library containers allowing for custom allocators (jbeder#855) * Add filename to the BadFile exception (jbeder#858) The BadFile exception which is thrown when failing to open a file now contains the filename. * Supplement test cases for 2.19 ~ 2.22 schema tags. (jbeder#857) Add test cases for the event handler for schema tags; does not include test cases for Node because specialized tag handling is not implemented yet. * Throw an exception when trying to parse a negative number as an unsigned. Fixing issue 859. * Fix crash when parsing `{x:` (jbeder#865) * Change CMakeLists to honor option "MSVC shared Runtimes" (jbeder#867) * Spelling (jbeder#870) * spelling: differently * spelling: irrelevant * spelling: specified * Add tests for some interfaces of emitter (jbeder#875) * Support as<uint8_t>/as<int8_t>. Fix issue 844/848. * [clang-tidy] do not use return after else (jbeder#892) Found with readability-else-after-return Signed-off-by: Rosen Penev <[email protected]> * manual algorithm conversions (jbeder#891) Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] convert to range loops (jbeder#889) Found with modernize-loop-convert Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use = default (jbeder#887) Found with modernize-use-equals-default Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use override (jbeder#885) Found with modernize-use-override Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] replace typedef with using (jbeder#886) Found with modernize-use-using Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use emplace_back (jbeder#880) Found with modernize-use-emplace Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use raw strings for easier readability (jbeder#882) Found with modernize-raw-string-literal Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use bool literals (jbeder#881) Found with modernize-use-bool-literals Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] fix inconsistent declaration (jbeder#884) Found with readability-inconsistent-declaration-parameter-name Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use braced initialization list (jbeder#883) Found with modernize-return-braced-init-list Signed-off-by: Rosen Penev <[email protected]> * partially fix clang compilation (jbeder#893) * partially fix clang compilation Missing header and mistaken algorithm usage. Also removed it name from range loops. It's not correct. Signed-off-by: Rosen Penev <[email protected]> * run through clang's -Wrange-loop-analysis Some range loops should not use references as they need to copy. Signed-off-by: Rosen Penev <[email protected]> * manual range loop conversions Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use empty method (jbeder#895) Found with readability-container-size-empty Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] convert several functions to use references (jbeder#894) Found with performance-unnecessary-value-param Signed-off-by: Rosen Penev <[email protected]> * [clang-tidy] use auto (jbeder#888) Found with modernize-use-auto Signed-off-by: Rosen Penev <[email protected]> * fix issue752: generate right long keys (jbeder#879) * fix issue752: generate right long keys * Improve the readability of test cases * update to raw string literal * tag_null (jbeder#897) * rm unusued typedef (jbeder#901) * Refactor to allow MSVC without #define NOMINMAX (jbeder#905) * Support kinds of emitter format-setting for YAML::Null. (jbeder#906) * Support kinds of emitter format-setting for YAML::Null. * update the code and test cases * add the comment //fallthrough * remove the wrong swap file. (jbeder#907) * Fix YAML::Newline in a sequence or map. Inside of a sequence or map, `YAML::Newline` wouldn't reset the collection state, which would cause behavior like this: ``` nodeA: k: [{i: 0}, {i:1}, ]NodeB: k: [{i: 0}, {i:1}, ] ``` * Parse colon in plain scalar correctly when in a flow collection Fixes jbeder#740. * fix bug from issue298:Emitter stylings settings overridden by node settings. (jbeder#915) * Enable CMP0091 to use MSVC_RUNTIME_LIBRARY (jbeder#913) Per https://cmake.org/cmake/help/latest/policy/CMP0091.html, we need to enable policy CMP0091 if we want to make use of MSVC_RUNTIME_LIBRARY and/or CMAKE_MSVC_RUNTIME_LIBRARY. Fixes issue jbeder#912. * Add support for JSON-compatible string escapes (jbeder#485) For completeness I've implemented escaping for characters outside the basic multilingual plane, but it doesn't get used (as there's no EscapeAsAsciiJson emitter option implemented). * Fix compilation for Qt-projects (jbeder#918) Not use 'emit' as variable name, in Qt Framework it reserved word * Add the support to parsing a null value as `std::string`. Fixes jbeder#590. * Handle a key with length over 1024 as a long key. (jbeder#916) Fixes jbeder#501 * Properly allow a trailing tab character on a block scalar (jbeder#919) Fixes jbeder#917 * Default initialize node's member variable (jbeder#923) * Reduce std::string copies (jbeder#924) - Don't eagerly convert key to std::string - Make const char* keys streamable when exception is thrown - Don't create a temporary string when comparing a const char* key * Fix runtime exceptions in Visual Studio environment. (jbeder#926) * Add the AppVeyor configuration file (jbeder#927) * fix issue743: handle the empty content of flow sep/map correctly during emitting. (jbeder#921) * fix issue743: handle the empty content of flow sep/map correctly during emitting. * handle the empty Tag/Anchor properly. * delete comment * Emit the correct Alias on the key (jbeder#908) (jbeder#929) * fix warning of level 4: (jbeder#971) convert.h line130 : warning C4244 conversation from int to T possible loss of data * Prevent trailing spaces when emitting literal strings (jbeder#1005) * Update version to 0.7.0. * Update node impl.h for GCC unused variable warning (jbeder#981) Removed the variable name in the defaulted function to make GCC happy. * Bump minimum cmake versions in gtest to eliminate cmake deprecation warnings. (jbeder#1012) * Add assert to enable compilation with libcxx + gcc (jbeder#947) * Include name of anchor in invalid anchor error (jbeder#1015) * Added UE-Wrapper link to Readme (jbeder#1024) * fixup: restore entry to gitignore Co-authored-by: Lassi Hämäläinen <[email protected]> Co-authored-by: Joel Frederico <[email protected]> Co-authored-by: Alexander Anokhin <[email protected]> Co-authored-by: Simon Gene Gottlieb <[email protected]> Co-authored-by: pent0 <[email protected]> Co-authored-by: tt4g <[email protected]> Co-authored-by: Olli Wang <[email protected]> Co-authored-by: caryoscelus <[email protected]> Co-authored-by: Ted Lyngmo <[email protected]> Co-authored-by: peterchen-cp <[email protected]> Co-authored-by: Jesse Beder <[email protected]> Co-authored-by: bedapisl <[email protected]> Co-authored-by: Jeppe Blicher Tarp <[email protected]> Co-authored-by: Andy Maloney <[email protected]> Co-authored-by: Isabella Muerte <[email protected]> Co-authored-by: Ezekiel Warren <[email protected]> Co-authored-by: Fatih YAZICI <[email protected]> Co-authored-by: Rasmus <[email protected]> Co-authored-by: carmeli-tamir <[email protected]> Co-authored-by: Romain Geissler @ Amadeus <[email protected]> Co-authored-by: Mike Egger <[email protected]> Co-authored-by: Igor [hyperxor] <[email protected]> Co-authored-by: Carlos Gomes Martinho <[email protected]> Co-authored-by: JeffWegher <[email protected]> Co-authored-by: Anton Onishchenko <[email protected]> Co-authored-by: Néstor Subirón <[email protected]> Co-authored-by: Dekken <[email protected]> Co-authored-by: Romain Deterre <[email protected]> Co-authored-by: Victor Mataré <[email protected]> Co-authored-by: Maxim Okhotskiy <[email protected]> Co-authored-by: Tindy X <[email protected]> Co-authored-by: Alan Griffiths <[email protected]> Co-authored-by: Martin Delille <[email protected]> Co-authored-by: Jesse Beder <[email protected]> Co-authored-by: Ian Taylor <[email protected]> Co-authored-by: deflinhec <[email protected]> Co-authored-by: Chen <[email protected]> Co-authored-by: Chen <[email protected]> Co-authored-by: Raúl Gutiérrez Segalés <[email protected]> Co-authored-by: Hans-Peter Gygax <[email protected]> Co-authored-by: Josh Soref <[email protected]> Co-authored-by: Rosen Penev <[email protected]> Co-authored-by: Raffaello Bertini <[email protected]> Co-authored-by: Tom Collins <[email protected]> Co-authored-by: Oliver Hamlet <[email protected]> Co-authored-by: Pavel Karelin <[email protected]> Co-authored-by: Kajetan Świerk <[email protected]> Co-authored-by: t.t <[email protected]> Co-authored-by: theamarin <[email protected]> Co-authored-by: JBPennington <[email protected]> Co-authored-by: jbeach <[email protected]> Co-authored-by: mjvankampen <[email protected]> Co-authored-by: Snow Pettersen <[email protected]> Co-authored-by: jwindgassen <[email protected]>
fix for #904
reference: microsoft/cppwinrt#479