1. Which functions should be inline ??
2. Is it okay to use std::out_of_range from STL's <stdexcept> ??
