#pragma once
/*
Это была задумка, как сделать переносимый код, чтобы можно было
компилировать под линукс, где по умолчанию мультибайт и utf-8,
но сразу упёрся в конвертирование из разных кодировок в БКшный КОИ8
и обратно, где из-за псеводграфики проще utf-16le использовать,
чем utf-8, и как-то всё на этом и заглохло.
*/
#if defined(_UNICODE)
/* Если у нас юникод */
#define _tstring wstring
#define _tregex wregex
#define _tto_string to_wstring

#if defined(_MSC_VER)
//#define _tstring wstring
//#define _tregex wregex
//#define _tto_string to_wstring
#else
/* Если не Visual Studio, надо добавить макросов от студии */
#define __T(x)      u ## x
#define _T(x)       __T(x)
#define TCHAR       char16_t
//#define _tstring u16string
//#define _tregex u16regex
//#define _tto_string to_u16string
#endif

#else
/* Если не юникод */
#define _tstring string
#define _tregex regex
#define _tto_string to_string

#if !defined(_MSC_VER)
/* Если не Visual Studio, надо добавить макросов от студии */
#define _T(x)       x
#define TCHAR       char
#endif

#endif
