fork download
  1. #include <iostream>
  2.  
  3. template<int W>
  4. typename std::enable_if<(W<10), std::string>::type
  5. to_number(int n){
  6. char const fmt [] = {'%', W+'0', 'd', 0};
  7. char buffer[20];
  8. sprintf(buffer, fmt, n);
  9. return buffer;
  10. }
  11. template<int W>
  12. typename std::enable_if<(W>=10), std::string>::type
  13. to_number(int n) {
  14. char const fmt [] = {'%', (W/10)+'0', (W%10)+'0', 'd', 0};
  15. char buffer[20];
  16. sprintf(buffer, fmt, n);
  17. return buffer;
  18. }
  19.  
  20. int main() {
  21. std::cout << to_number<5>(7) << '\n';
  22. std::cout << to_number<15>(7);
  23. return 0;
  24. }
Success #stdin #stdout 0.01s 5308KB
stdin
Standard input is empty
stdout
    7
              7