#pragma once
/*
Это была задумка, как сделать переносимый код, чтобы можно было
компилировать под линукс, где по умолчанию мультибайт и utf-8
*/
#if defined(_UNICODE)
/* Если у нас юникод */
#define _tcout wcout
#define _tfopen _wfopen
#define _tstring wstring
#define _tregex wregex
#define _tto_string to_wstring
#define _tcscmp wcscmp
#define _ttolower towlower
#define _ttoupper towupper
#include <cwctype>
#include <cwchar>


#if !defined(_MSC_VER)
/* Если не Visual Studio, надо добавить макросов от студии */
#define __T(x)      u ## x
#define _T(x)       __T(x)
#define TCHAR       wchar_t
#define _tmain      wmain
#define _tprintf    wprintf
#define _ftprintf   fwprintf
#else
#include <tchar.h>
#endif

#else
/* Если не юникод */
#define _tcout cout
#define _tfopen fopen
#define _tstring string
#define _tregex regex
#define _tto_string to_string
#define _tcscmp strcmp
#define _ttolower tolower
#define _ttoupper toupper
#include <cctype>

#if !defined(_MSC_VER)
/* Если не Visual Studio, надо добавить макросов от студии */
#define _T(x)       x
#define TCHAR       char
#define _tmain      main
#define _tprintf    printf
#define _ftprintf   fprintf
#else
#include <tchar.h>
#endif

#endif
