use constexpr feature of C++11