aboutsummaryrefslogtreecommitdiff
path: root/works/life/computer-network-experiment/Common.h
blob: 1f4fa23c899557f51be58bcb48d7a16b797e1d89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
#include "StringUtil.hpp"

#include <iostream>
#include <string>
#include <string_view>

#ifdef WIN32
using Char = wchar_t;
using String = std::wstring;
using StringView = std::wstring_view;
inline auto &input_stream = std::wcin;
inline auto &output_stream = std::wcout;
inline auto &error_stream = std::wcerr;
#define CRUT(string_literal) L##string_literal

inline String ConvertCharString(std::string_view s) {
  return cru::ToUtf16WString(s);
}
#else
using Char = char;
using String = std::string;
using StringView = std::string_view;
inline auto &input_stream = std::cin;
inline auto &output_stream = std::cout;
inline auto &error_stream = std::cerr;
#define CRUT(string_literal) string_literal

inline String ConvertCharString(std::string_view s) { return s; }
#endif

[[noreturn]] void PrintErrorMessageAndExit(StringView message,
                                           bool print_last_error = true);

#ifdef WIN32
void InitWSA();
#endif