// __ _____ _____ _____// __| | __| | | | JSON for Modern C++ (supporting code)// | | |__ | | | | | | version 3.12.0// |_____|_____|_____|_|___| https://github.com/nlohmann/json//// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann <https://nlohmann.me>// SPDX-License-Identifier: MIT#include "doctest_compatibility.h"// disable -Wnoexcept as exceptions are switched off for this test suiteDOCTEST_GCC_SUPPRESS_WARNING_PUSHDOCTEST_GCC_SUPPRESS_WARNING("-Wnoexcept")#include <nlohmann/json.hpp>using json = nlohmann::json;/////////////////////////////////////////////////////////////////////// for #2824/////////////////////////////////////////////////////////////////////class sax_no_exception : public nlohmann::detail::json_sax_dom_parser<json, nlohmann::detail::string_input_adapter_type>{public:explicit sax_no_exception(json& j) : nlohmann::detail::json_sax_dom_parser<json, nlohmann::detail::string_input_adapter_type>(j, false) {}static bool parse_error(std::size_t /*position*/, const std::string& /*last_token*/, const json::exception& ex){error_string = new std::string(ex.what()); // NOLINT(cppcoreguidelines-owning-memory)return false;}static std::string* error_string;};std::string* sax_no_exception::error_string = nullptr;TEST_CASE("Tests with disabled exceptions"){SECTION("issue #2824 - encoding of json::exception::what()"){json j;sax_no_exception sax(j);CHECK (!json::sax_parse("xyz", &sax));CHECK(*sax_no_exception::error_string == "[json.exception.parse_error.101] parse error at line 1, column 1: syntax error while parsing value - invalid literal; last read: 'x'");delete sax_no_exception::error_string; // NOLINT(cppcoreguidelines-owning-memory)}}DOCTEST_GCC_SUPPRESS_WARNING_POP
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。