mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
d036fdf919
Including <iostream> has two problems: * Compile times are worse because of over-inclusion * Binary sizes are worse when statically linking libstdc++ because iostreams cannot be dead-code-stripped simdjson only needs std::ostream. Include the header declaring only what we need (<ostream>), omitting stuff we don't need (std::cout and its initialization, for example). This commit should not change behavior, but it might break users who assume that including <simdjson/simdjson.h> will make std::cout available (such as many of simdjson's own files).
22 lines
660 B
C++
22 lines
660 B
C++
#include <iostream>
|
|
#include "simdjson.h"
|
|
using namespace simdjson;
|
|
int main(void) {
|
|
padded_string json;
|
|
auto error = padded_string::load("twitter.json").get(json);
|
|
if (error) { std::cerr << error << std::endl; return EXIT_FAILURE; }
|
|
|
|
ondemand::parser parser;
|
|
ondemand::document tweets;
|
|
error = parser.iterate(json).get(tweets);
|
|
if (error) { std::cerr << error << std::endl; return EXIT_FAILURE; }
|
|
|
|
uint64_t count;
|
|
error = tweets["search_metadata"]["count"].get(count);
|
|
if (error) { std::cerr << error << std::endl; return EXIT_FAILURE; }
|
|
|
|
std::cout << count << " results." << std::endl;
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|