add advance C++14 constexpr version