Boost.Multiprecision を User-defined literals を使って初期化
こういう時こそ User-defined literals の出番!
ってことでやってみました。
[ソース]
#include <boost/multiprecision/cpp_int.hpp> #include <string> boost::multiprecision::cpp_int operator "" _cpp_int(char const* str){ return boost::multiprecision::cpp_int(str); } int main(){ // 文字列ではなくて数値をそのまま記述する事が出来る auto n = 354224848179261915075_cpp_int; std::cout << n << std::endl; auto m = 573147844013817084101_cpp_int; std::cout << m << std::endl; std::cout << std::boolalpha << (m + n == 927372692193078999176_cpp_int) << std::endl; return 0; }
[出力]
354224848179261915075 573147844013817084101 true
User-defined literals はすばらしいですね!!
[boost]
- ver 1.53.0