Boost.Multiprecision を文字列で初期化
Boost.Multiprecision は数値以外にも文字列で初期化する事が出来ます。
[ソース]
#include <boost/multiprecision/cpp_int.hpp> #include <boost/multiprecision/cpp_dec_float.hpp> #include <string> boost::multiprecision::cpp_int operator "" _cpp_int(char const* str, std::size_t){ return boost::multiprecision::cpp_int(str); } int main(){ typedef boost::multiprecision::cpp_int int_type; // char const* int_type n("354224848179261915075"); // std::string std::string str("573147844013817084101"); int_type m(str); std::cout << n + m << std::endl; return 0; }
[出力]
927372692193078999176
より大きい数値の場合はこれで初期化する事が出来ますね。
[boost]
- ver 1.53.0