C++ 98 version without macros

C++ 98 version without macros.