#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
