adopting string literals (#2128)

* adopting string literals

* String suffixes are C++14
This commit is contained in:
Daniel Lemire
2024-02-15 10:40:11 -05:00
committed by GitHub
parent 2fe3a1467d
commit 0c08894a54
9 changed files with 39 additions and 29 deletions
+9 -8
View File
@@ -10,6 +10,7 @@
#include <sstream>
#include <utility>
#include <unistd.h>
using namespace std::string_literals;
#include "simdjson.h"
#include "cast_tester.h"
@@ -2279,14 +2280,14 @@ bool simple_overflows() {
std::cout << "Running " << __func__ << std::endl;
simdjson::dom::parser parser;
simdjson::dom::element doc;
ASSERT_ERROR( parser.parse(std::string("[f]")).get(doc), simdjson::F_ATOM_ERROR);
ASSERT_ERROR( parser.parse(std::string("[t]")).get(doc), simdjson::T_ATOM_ERROR);
ASSERT_ERROR( parser.parse(std::string("[n]")).get(doc), simdjson::N_ATOM_ERROR);
ASSERT_ERROR( parser.parse(std::string("[-]")).get(doc), simdjson::NUMBER_ERROR);
ASSERT_ERROR( parser.parse(std::string("{\"a\":f}")).get(doc), simdjson::F_ATOM_ERROR);
ASSERT_ERROR( parser.parse(std::string("{\"a\":t}")).get(doc), simdjson::T_ATOM_ERROR);
ASSERT_ERROR( parser.parse(std::string("{\"a\":n}")).get(doc), simdjson::N_ATOM_ERROR);
ASSERT_ERROR( parser.parse(std::string("{\"a\":-}")).get(doc), simdjson::NUMBER_ERROR);
ASSERT_ERROR( parser.parse("[f]"s).get(doc), simdjson::F_ATOM_ERROR);
ASSERT_ERROR( parser.parse("[t]"s).get(doc), simdjson::T_ATOM_ERROR);
ASSERT_ERROR( parser.parse("[n]"s).get(doc), simdjson::N_ATOM_ERROR);
ASSERT_ERROR( parser.parse("[-]"s).get(doc), simdjson::NUMBER_ERROR);
ASSERT_ERROR( parser.parse("{\"a\":f}"s).get(doc), simdjson::F_ATOM_ERROR);
ASSERT_ERROR( parser.parse("{\"a\":t}"s).get(doc), simdjson::T_ATOM_ERROR);
ASSERT_ERROR( parser.parse("{\"a\":n}"s).get(doc), simdjson::N_ATOM_ERROR);
ASSERT_ERROR( parser.parse("{\"a\":-}"s).get(doc), simdjson::NUMBER_ERROR);
return true;
}
+5 -4
View File
@@ -1,8 +1,9 @@
#include <string>
#include <vector>
#include <cctype>
#include <unistd.h>
#include <random>
#include <string>
#include <unistd.h>
#include <vector>
using namespace std::string_literals;
#include "simdjson.h"
#include "test_macros.h"
@@ -879,7 +880,7 @@ namespace document_stream_tests {
bool issue1649() {
std::cout << "Running " << __func__ << std::endl;
std::size_t batch_size = 637;
const auto json=simdjson::padded_string(std::string("\xd7"));
const auto json=simdjson::padded_string("\xd7"s);
simdjson::dom::parser parser;
simdjson::dom::document_stream docs;
if(parser.parse_many(json,batch_size).get(docs)) {
+5 -4
View File
@@ -1,6 +1,7 @@
#include <string>
#include <vector>
#include <unistd.h>
using namespace std::string_literals;
#include "simdjson.h"
#include "test_macros.h"
@@ -138,10 +139,10 @@ namespace document_tests {
if (n >= buf.size()) { abort(); }
data.emplace_back(std::string(buf.data(), n));
}
data.emplace_back(std::string("true"));
data.emplace_back(std::string("false"));
data.emplace_back(std::string("null"));
data.emplace_back(std::string("0.1"));
data.emplace_back("true"s);
data.emplace_back("false"s);
data.emplace_back("null"s);
data.emplace_back("0.1"s);
size_t maxsize = 0;
for (auto &s : data) {
if (maxsize < s.size())
+3 -1
View File
@@ -5,6 +5,8 @@
*/
#include <iostream>
#include <string>
using namespace std::string_literals;
#include "simdjson.h"
#include "test_macros.h"
@@ -162,7 +164,7 @@ bool issue1142() {
dom::parser parser;
dom::element example = parser.parse(example_json);
auto e0 = dom::array(example).at(0).at_pointer("");
ASSERT_EQUAL(std::string("1"), simdjson::minify(e0))
ASSERT_EQUAL("1"s, simdjson::minify(e0))
auto o = dom::array(example).at(2).at_pointer("");
ASSERT_EQUAL(std::string(R"({"1":"bla"})"), simdjson::minify(o))
std::string_view s0 = dom::array(example).at(2).at_pointer("/1").at_pointer("");
@@ -1,3 +1,6 @@
#include <string>
using namespace std::string_literals;
#include "simdjson.h"
#include "test_ondemand.h"
@@ -234,7 +237,7 @@ namespace document_stream_tests {
ASSERT_EQUAL(odstream.truncated_bytes(), 305);
break;
} else if (err) {
TEST_FAIL(std::string("ondemand: error accessing jsonpointer: ") + simdjson::error_message(err));
TEST_FAIL("ondemand: error accessing jsonpointer: "s + simdjson::error_message(err));
}
}
ASSERT_EQUAL(odstream.truncated_bytes(), 305);
@@ -1,6 +1,7 @@
#include "simdjson.h"
#include "test_ondemand.h"
#include <string>
using namespace std::string_literals;
using namespace simdjson;
@@ -195,7 +196,7 @@ namespace json_pointer_tests {
ASSERT_SUCCESS(parser.iterate(cars_json).get(cars));
for (int i = 0; i < 3; i++) {
double x;
std::string json_pointer = std::string("/") + std::to_string(i) + std::string("/tire_pressure/1");
std::string json_pointer = "/"s + std::to_string(i) + "/tire_pressure/1"s;
ASSERT_SUCCESS(cars.at_pointer(json_pointer).get(x));
measured.push_back(x);
}
@@ -315,7 +316,7 @@ namespace json_pointer_tests {
std::vector<car_type> content;
for (int i = 0; i < 3; i++) {
ondemand::object obj;
std::string json_pointer = std::string("/") + std::to_string(i);
std::string json_pointer = "/"s + std::to_string(i);
// Each successive at_pointer call invalidates
// previously parsed values, strings, objects and array.
ASSERT_SUCCESS(cars.at_pointer(json_pointer).get(obj));
@@ -360,7 +361,7 @@ namespace json_pointer_tests {
ondemand::document cars = parser.iterate(cars_json);
std::vector<car_type> content;
for (int i = 0; i < 3; i++) {
std::string json_pointer = std::string("/") + std::to_string(i);
std::string json_pointer = "/"s + std::to_string(i);
// Each successive at_pointer call invalidates
// previously parsed values, strings, objects and array.
ondemand::object obj(cars.at_pointer(json_pointer).get_object());
+4 -4
View File
@@ -550,7 +550,7 @@ namespace misc_tests {
simdjson_warn_unused bool test_raw_json_token(string_view json, string_view expected_token, int expected_start_index = 0) {
string title("'");
title.append(json.data(), json.length());
title += std::string("'");
title += "'"s;
padded_string json_padded = json;
SUBTEST(title, test_ondemand_doc(json_padded, [&](auto doc) {
string_view token;
@@ -564,11 +564,11 @@ namespace misc_tests {
// Test values
auto json_in_hash = string(R"({"a":)");
json_in_hash.append(json.data(), json.length());
json_in_hash += std::string("}");
json_in_hash += "}"s;
json_padded = json_in_hash;
title = std::string("'");
title = "'"s;
title.append(json_in_hash.data(), json_in_hash.length());
title += std::string("'");
title += "'"s;
SUBTEST(title, test_ondemand_doc(json_padded, [&](auto doc) {
string_view token;
ASSERT_SUCCESS( doc["a"].raw_json_token().get(token) );
+2 -1
View File
@@ -1092,6 +1092,7 @@ bool invalid_json_path() {
bool json_pointer_multiple() {
TEST_START();
using namespace std::string_literals;
ondemand::parser parser;
ondemand::document cars;
size_t size;
@@ -1099,7 +1100,7 @@ bool json_pointer_multiple() {
ASSERT_SUCCESS(cars.count_elements().get(size));
double expected[] = {39.9, 31, 30};
for (size_t i = 0; i < size; i++) {
std::string json_pointer = std::string("/") + std::to_string(i) + std::string("/tire_pressure/1");
std::string json_pointer = "/"s + std::to_string(i) + "/tire_pressure/1"s;
double x;
ASSERT_SUCCESS(cars.at_pointer(json_pointer).get(x));
ASSERT_EQUAL(x,expected[i]);
+3 -3
View File
@@ -80,7 +80,7 @@ namespace scalar_tests {
}
{
padded_string array_json = std::string("[") + std::string(json) + "]";
padded_string array_json = "["s + std::string(json) + "]";
std::cout << "- JSON: " << array_json << endl;
SUBTEST( "simdjson_result<value>", test_ondemand_doc(array_json, [&](auto doc_result) {
int count = 0;
@@ -123,7 +123,7 @@ namespace scalar_tests {
}
{
padded_string whitespace_array_json = std::string("[") + std::string(json) + " ]";
padded_string whitespace_array_json = "["s + std::string(json) + " ]";
std::cout << "- JSON: " << whitespace_array_json << endl;
SUBTEST( "simdjson_result<value>", test_ondemand_doc(whitespace_array_json, [&](auto doc_result) {
@@ -256,7 +256,7 @@ namespace scalar_tests {
ASSERT_EQUAL( expected, T(doc) );
return true;
}));
padded_string array_json = std::string("[") + std::string(json) + "]";
padded_string array_json = "["s + std::string(json) + "]";
std::cout << "- JSON: " << array_json << endl;
SUBTEST( "value", test_ondemand_doc(array_json, [&](auto doc_result) {
int count = 0;