API Design for C++