2019-02-11 19:18:47 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
#include <iomanip>
|
|
|
|
#include <fstream>
|
|
|
|
#include <string>
|
|
|
|
#include <cctype>
|
|
|
|
#include <memory>
|
2019-03-31 14:50:12 -04:00
|
|
|
#include <cmath>
|
2019-02-11 19:18:47 -05:00
|
|
|
#include <vector>
|
2019-03-03 16:34:23 -05:00
|
|
|
#include <unordered_map>
|
|
|
|
#include <unordered_set>
|
2019-02-11 19:18:47 -05:00
|
|
|
#include <sstream>
|
|
|
|
#include <list>
|
|
|
|
#include <atomic>
|
2019-02-13 23:02:43 -05:00
|
|
|
#include <thread>
|
2019-02-15 21:33:13 -05:00
|
|
|
#include <deque>
|
2019-10-19 15:39:20 -04:00
|
|
|
#include <algorithm>
|
2019-02-11 19:18:47 -05:00
|
|
|
|
|
|
|
#include "../Utilities/UTF8Util.h"
|
|
|
|
|
2019-07-03 00:44:45 -04:00
|
|
|
#ifndef __MINGW32__
|
2021-03-10 11:13:28 -05:00
|
|
|
#ifdef __clang__
|
2019-10-06 21:40:43 -04:00
|
|
|
#define __forceinline __attribute__((always_inline)) inline
|
2021-03-10 11:13:28 -05:00
|
|
|
#else
|
|
|
|
#ifdef __GNUC__
|
2019-10-06 21:40:43 -04:00
|
|
|
#define __forceinline __attribute__((always_inline)) inline
|
2021-03-10 11:13:28 -05:00
|
|
|
#endif
|
|
|
|
#endif
|
2019-02-11 19:18:47 -05:00
|
|
|
#endif
|
|
|
|
|
|
|
|
using std::vector;
|
2019-03-03 16:34:23 -05:00
|
|
|
using std::unordered_map;
|
|
|
|
using std::unordered_set;
|
2019-02-11 19:18:47 -05:00
|
|
|
using std::shared_ptr;
|
|
|
|
using std::unique_ptr;
|
|
|
|
using std::weak_ptr;
|
|
|
|
using std::ios;
|
|
|
|
using std::istream;
|
|
|
|
using std::ostream;
|
|
|
|
using std::stringstream;
|
|
|
|
using utf8::ifstream;
|
|
|
|
using utf8::ofstream;
|
|
|
|
using std::list;
|
|
|
|
using std::max;
|
|
|
|
using std::string;
|
|
|
|
using std::atomic_flag;
|
|
|
|
using std::atomic;
|
2019-02-13 23:02:43 -05:00
|
|
|
using std::thread;
|
2019-02-15 21:33:13 -05:00
|
|
|
using std::deque;
|