logog
logger optimized for games
string.hpp File Reference

Go to the source code of this file.

Classes

class  String
 

Namespaces

 logog
 [Thread]
 

Macros

#define L0   (const LOGOG_CHAR *)'\0'
 
#define LNULL   (const LOGOG_CHAR *)'\0'
 
#define L__null   (const LOGOG_CHAR *)'\0'
 
#define LOGOG_CONST_STRING_INDIRECT(x)   L ## x
 
#define LOGOG_CONST_STRING(x)   LOGOG_CONST_STRING_INDIRECT(x)
 
#define LOGOG_COUT   std::wcout
 
#define LOGOG_CERR   std::wcerr
 
#define _LG(x)   LOGOG_CONST_STRING( x )
 
#define LOGOG_MAX(a, b)   ( ( a > b ) ? a : b )
 
#define LOGOG_STRING   ::logog::String
 

Typedefs

typedef wchar_t LOGOG_CHAR
 

Detailed Description

Defines the logog string class.

Macro Definition Documentation

#define _LG (   x)    LOGOG_CONST_STRING( x )

If this constant is defined, then you can use the shorthand macro _LG in your code to represent a constant string. The _LG() macro is defined only if LOGOG_USE_PREFIX is not defined. _LG() can be used to describe a const string that is compiled to either as Unicode or ANSI, based on the setting of the LOGOG_UNICODE flag. _LG() is not needed if you don't need Unicode support. If you want your messages to work with both Unicode as well as ANSI builds of logog, preface them like this: _LG("This const string works on Unicode as well as ANSI.")

#define L0   (const LOGOG_CHAR *)'\0'

This is a naughty little hack. If we're using Unicode, then we append an L to your const string. However, we have several situations in which that string will actually be a NULL or 0 value in code, and the string will be rendered as L0 or LNULL. In that case, we catch it with yet another macro. Hacky, but seems to do the trick. Beware of conflicts with existing code though...!

#define L__null   (const LOGOG_CHAR *)'\0'
#define LNULL   (const LOGOG_CHAR *)'\0'
#define LOGOG_CERR   std::wcerr

This is equivalent to std::wcerr if LOGOG_UNICODE is defined, and std::cerr otherwise.

#define LOGOG_CONST_STRING (   x)    LOGOG_CONST_STRING_INDIRECT(x)
#define LOGOG_CONST_STRING_INDIRECT (   x)    L ## x
#define LOGOG_COUT   std::wcout

This is equivalent to std::wcout if LOGOG_UNICODE is defined, and std::cout otherwise.

#define LOGOG_MAX (   a,
 
)    ( ( a > b ) ? a : b )
#define LOGOG_STRING   ::logog::String

Typedef Documentation

typedef wchar_t LOGOG_CHAR

logog has detected Unicode; therefore a LOGOG_CHAR is a wide character.