![]() ![]() ![]()
|
SophiaFramework 2.2 |
C++ 言語には型キャストを行うための関数 static_cast, dynamic_cast, const_cast, reinterpret_cast があります。 これらは Visual C++ では使用できますが、 ARM コンパイラによっては使用できない場合があります。
そのため、 コンパイラによって C++ 言語の型キャストと C 言語の型キャストを切り替える 4 つの関数を用意しています。
#if defined TARGET_COMPILER_ARMCPP
template <typename T>
inline T static_brew(const void* a0) {return(T(a0));}
template <typename T>
inline T dynamic_brew(const void* a0) {return(T(a0));}
template <typename T>
inline T const_brew(const void* a0) {return(T(a0));}
template <typename T>
inline T reinterpret_brew(const void* a0) {return(T(a0));}
#else
#define static_brew static_cast
#define dynamic_brew dynamic_cast
#define const_brew const_cast
#define reinterpret_brew reinterpret_cast
#endif
たとえば static_brew は Visual C++ でコンパイルするときは C++ 言語の型キャスト static_cast になりますが、 ARM コンパイラの場合は C 言語の強制型キャストになります。
C++ 言語の型キャストを使用しながら、 ARM コンパイラでコンパイルできるようにするためには、 これらの型キャスト関数を使うとよいでしょう。
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|