Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- template <char c, char... Str>
- struct reverse_int
- {
- static const int value = 10 * reverse_int<Str...>::value + (c - '0');
- };
- template <char c>
- struct reverse_int<c>
- {
- static const int value = c - '0';
- };
- template <char... Str>
- constexpr int operator "" _reverse()
- {
- return reverse_int<Str...>::value;
- }
- template <int Num, int temp = 0>
- struct reverse_int2
- {
- static const int value = reverse_int2<Num / 10, temp * 10 + Num % 10>::value;
- };
- template <int temp>
- struct reverse_int2<0, temp>
- {
- static const int value = temp;
- };
- int main(int argc, char *argv[])
- {
- using namespace std;
- cout << 54321_reverse << endl
- << reverse_int2<12345>::value << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement