聽聽聽聽template<int聽d,int聽pow>
聽聽聽聽struct聽Power
聽聽聽聽{
聽聽聽聽聽聽聽聽static聽const聽int聽value聽=聽Power<d,pow-1>::value聽*聽d;
聽聽聽聽};
聽聽聽聽template<int聽d>
聽聽聽聽struct聽Power<d,0>
聽聽聽聽{
聽聽聽聽聽聽聽聽static聽const聽int聽value聽=聽1;
聽聽聽聽};
聽聽聽聽/**
聽聽聽聽聽*聽璇ュ嚱鏁板皢涓涓暣鏁拌漿鎹㈡垚鍥哄畾闀垮害鐨?涓嶉綈鐨勪覆錛屽12->"00012"
聽聽聽聽聽*/
聽聽聽聽template<int聽len>
聽聽聽聽std::string聽int_cast_zerostr(const聽int聽i)
聽聽聽聽{
聽聽聽聽聽聽聽聽std::string聽result聽聽=聽boost::lexical_cast<std::string>(Power<10,len>::value聽+聽i);
聽聽聽聽聽聽聽聽return聽result.substr(1);
聽聽聽聽}
濡傛灉瑕佸皢12杞崲鎴?00000012"錛屽彲浣跨敤鍑芥暟int_cast_zerostr<8>(12)銆?br />
璋㈣阿灝忔槑鐨勬彁閱掞紝鎯寵搗Boost鏈変釜format搴擄紝鎵浠ュ彲浠ヨ繖鏍?br />聽聽聽聽boost::format聽f("%08d");
聽聽聽聽std::string聽s聽=聽(f%12).str();
聽聽聽聽std::cout<<s; //s = "00000012"
涓嶈繃涓漢鏇村枩嬈nt_cast_zerostr<8>(12)鏂瑰紡銆傚懙鍛碉紒

]]>