support C++03