2021-05-21 11:28:45 +00:00
|
|
|
//# This file is a part of toml++ and is subject to the the terms of the MIT license.
|
|
|
|
//# Copyright (c) 2019-2020 Mark Gillard <mark.gillard@outlook.com.au>
|
|
|
|
//# See https://github.com/marzer/tomlplusplus/blob/master/LICENSE for the full license text.
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
|
|
|
// this file is for boilerplate unrelated to the toml++ example learning outcomes.
|
|
|
|
|
|
|
|
#ifdef __clang__
|
2021-10-25 21:49:17 +00:00
|
|
|
#pragma clang diagnostic push
|
|
|
|
#pragma clang diagnostic ignored "-Weverything"
|
|
|
|
#elif defined(__GNUC__)
|
|
|
|
#pragma GCC diagnostic push
|
|
|
|
#pragma GCC diagnostic ignored "-Wall"
|
|
|
|
#pragma GCC diagnostic ignored "-Wextra"
|
2021-05-21 11:28:45 +00:00
|
|
|
#elif defined(_MSC_VER)
|
2021-10-25 21:49:17 +00:00
|
|
|
#pragma warning(push, 0)
|
2021-05-21 11:28:45 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <cstdlib>
|
|
|
|
#include <ctime>
|
2022-05-09 09:26:53 +00:00
|
|
|
#include <cassert>
|
2021-05-21 11:28:45 +00:00
|
|
|
#include <iostream>
|
|
|
|
#include <sstream>
|
|
|
|
#include <string>
|
|
|
|
#include <string_view>
|
|
|
|
#include <vector>
|
|
|
|
#include <array>
|
2021-11-04 09:56:03 +00:00
|
|
|
#include <chrono>
|
2022-02-12 13:25:20 +00:00
|
|
|
#include <fstream>
|
2021-05-21 11:28:45 +00:00
|
|
|
#ifdef _WIN32
|
2021-10-30 12:56:14 +00:00
|
|
|
#ifdef _MSC_VER
|
|
|
|
extern "C" __declspec(dllimport) int __stdcall SetConsoleOutputCP(unsigned int);
|
|
|
|
#pragma comment(lib, "Kernel32.lib")
|
|
|
|
#else
|
|
|
|
#include <Windows.h>
|
|
|
|
#endif
|
2021-05-21 11:28:45 +00:00
|
|
|
#endif
|
|
|
|
|
2021-10-29 20:59:53 +00:00
|
|
|
namespace
|
2021-05-21 11:28:45 +00:00
|
|
|
{
|
2021-10-29 20:59:53 +00:00
|
|
|
static const auto initialize_environment_automagically = []() noexcept
|
2021-05-21 11:28:45 +00:00
|
|
|
{
|
2021-10-25 21:49:17 +00:00
|
|
|
#ifdef _WIN32
|
|
|
|
SetConsoleOutputCP(65001); // CP_UTF8
|
|
|
|
#endif
|
2021-05-21 11:28:45 +00:00
|
|
|
|
|
|
|
std::ios_base::sync_with_stdio(false);
|
|
|
|
std::cout << std::boolalpha;
|
|
|
|
|
|
|
|
srand(static_cast<unsigned int>(time(nullptr)));
|
2021-10-29 20:59:53 +00:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}();
|
2021-05-21 11:28:45 +00:00
|
|
|
}
|
2021-10-29 20:59:53 +00:00
|
|
|
|
|
|
|
#ifdef __clang__
|
|
|
|
#pragma clang diagnostic pop
|
|
|
|
#elif defined(__GNUC__)
|
|
|
|
#pragma GCC diagnostic pop
|
|
|
|
#elif defined(_MSC_VER)
|
|
|
|
#pragma warning(pop)
|
|
|
|
#endif
|