Not efficient in C++98.