- "streamlined" ttmathconfig.h a bit:

a) Unicode support if TTMATH_USE_WCHAR is set (compiler must know wchar_t etc, of course)
  b) threading synchonisation uses WIN32 instead of __MSVC__ define, as this is OS dependent, not compiler dependent

git-svn-id: svn://ttmath.org/publicrep/ttmath/branches/chk@172 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Christian Kaiser 2009-06-26 11:14:51 +00:00
parent de58378488
commit 5597373093
2 changed files with 142 additions and 144 deletions

View File

@ -27,37 +27,36 @@
distribution. distribution.
*/ */
#ifndef headerfilettmathmathttconfig #ifndef headerfilettmathconfig
#define headerfilettmathmathttconfig #define headerfilettmathconfig
#pragma once #pragma once
#include <sstream> #include <sstream>
namespace ttmath namespace ttmath
{ {
#if defined(TTMATH_USE_WCHAR)
#if defined(_MSC_VER)
#include <windows.h>
#if defined(_UNICODE)
typedef wchar_t tchar_t; typedef wchar_t tchar_t;
typedef std::wstring tstr_t; typedef std::wstring tstr_t;
typedef std::wostringstream tostrstrm_t; typedef std::wostringstream tostrstrm_t;
typedef std::wostream tostrm_t; typedef std::wostream tostrm_t;
typedef std::wistream tistrm_t; typedef std::wistream tistrm_t;
#define __TTMATH_TEXT(quote) L ## quote
#else #else
typedef char tchar_t; typedef char tchar_t;
typedef std::string tstr_t; typedef std::string tstr_t;
typedef std::ostringstream tostrstrm_t; typedef std::ostringstream tostrstrm_t;
typedef std::ostream tostrm_t; typedef std::ostream tostrm_t;
typedef std::istream tistrm_t; typedef std::istream tistrm_t;
#define __TTMATH_TEXT(quote) quote
#endif #endif
#if defined(_UNICODE) #define TTMATH_TEXT(quote) __TTMATH_TEXT(quote)
#define __TEXT(quote) L ## quote
#else #if defined(WIN32)
#define __TEXT(quote) quote #include <windows.h>
#endif
#define TTMATH_TEXT(quote) __TEXT(quote)
#if defined(_MT) #if defined(_MT)
class clsCrit class clsCrit
@ -116,19 +115,16 @@ namespace ttmath
} }
#define TTMATH_USE_THREADSAFE_OBJ(c) clsCritObj lock(c) #define TTMATH_USE_THREADSAFE_OBJ(c) clsCritObj lock(c)
#endif #endif
#else // not MS compiler #else // defined(WIN32)
typedef char tchar_t; // not Windows world: no threading synchronization for now
typedef std::string tstr_t;
typedef std::ostringstream tostrstrm_t;
typedef std::ostream tostrm_t;
typedef std::istream tistrm_t;
#endif #endif
#if !defined(TTMATH_IMPLEMENT_THREADSAFE_OBJ) #if !defined(TTMATH_IMPLEMENT_THREADSAFE_OBJ)
// if we don't know about serialization, make it a no-op
#define TTMATH_IMPLEMENT_THREADSAFE_OBJ /* */ #define TTMATH_IMPLEMENT_THREADSAFE_OBJ /* */
#define TTMATH_USE_THREADSAFE_OBJ(c) /* */ #define TTMATH_USE_THREADSAFE_OBJ(c) /* */
#endif #endif
} // namespace } // namespace
#endif // headerfilettmathmathttconfig #endif // headerfilettmathconfig

View File

@ -858,6 +858,7 @@ namespace ttmath
* *
*/ */
#ifndef __GNUC__
/*! /*!
this method calculates 64bits word a:b / 32bits c (a higher, b lower word) this method calculates 64bits word a:b / 32bits c (a higher, b lower word)
@ -1036,6 +1037,7 @@ namespace ttmath
return c; return c;
} }
#endif // #ifndef __GNUC__
} //namespace } //namespace