|
31 | 31 | #define OCT 8
|
32 | 32 | #define BIN 2
|
33 | 33 |
|
| 34 | +#define _always_inline __attribute__ ((__always_inline__)) // undefined at end |
| 35 | + |
34 | 36 | class Print
|
35 | 37 | {
|
36 | 38 | private:
|
@@ -61,22 +63,24 @@ class Print
|
61 | 63 | size_t print(unsigned long, int = DEC);
|
62 | 64 | size_t print(double, int = 2);
|
63 | 65 |
|
64 |
| - size_t print(const char str[]) { return write(str); } |
65 |
| - size_t print(const char c) { return write(c); } |
66 |
| - size_t print(const Printable &x) { return x.printTo(*this); } |
| 66 | + _always_inline size_t print(const char str[]) { return write(str); } |
| 67 | + _always_inline size_t print(const char c) { return write(c); } |
| 68 | + _always_inline size_t print(const Printable &x) { return x.printTo(*this); } |
67 | 69 |
|
68 |
| - size_t print( signed char n, int f = DEC) { return print(( signed long) n, f); } |
69 |
| - size_t print( signed short n, int f = DEC) { return print(( signed long) n, f); } |
70 |
| - size_t print( signed int n, int f = DEC) { return print(( signed long) n, f); } |
71 |
| - size_t print(unsigned char n, int f = DEC) { return print((unsigned long) n, f); } |
72 |
| - size_t print(unsigned short n, int f = DEC) { return print((unsigned long) n, f); } |
73 |
| - size_t print(unsigned int n, int f = DEC) { return print((unsigned long) n, f); } |
74 |
| - size_t print( float n, int f = 2 ) { return print(( double ) n, f); } |
| 70 | + _always_inline size_t print( signed char n, int f = DEC) { return print(( signed long) n, f); } |
| 71 | + _always_inline size_t print( signed short n, int f = DEC) { return print(( signed long) n, f); } |
| 72 | + _always_inline size_t print( signed int n, int f = DEC) { return print(( signed long) n, f); } |
| 73 | + _always_inline size_t print(unsigned char n, int f = DEC) { return print((unsigned long) n, f); } |
| 74 | + _always_inline size_t print(unsigned short n, int f = DEC) { return print((unsigned long) n, f); } |
| 75 | + _always_inline size_t print(unsigned int n, int f = DEC) { return print((unsigned long) n, f); } |
| 76 | + _always_inline size_t print( float n, int f = 2 ) { return print(( double ) n, f); } |
75 | 77 |
|
76 | 78 | size_t println(void);
|
77 | 79 |
|
78 |
| - template<typename T> size_t println(const T &arg) { size_t t = print(arg); return t + println(); } |
79 |
| - template<typename T> size_t println(const T &n, int f) { size_t t = print(n, f); return t + println(); } |
| 80 | + template<typename T> _always_inline size_t println(const T &arg) { size_t t = print(arg); return t + println(); } |
| 81 | + template<typename T> _always_inline size_t println(const T &n, int f) { size_t t = print(n, f); return t + println(); } |
80 | 82 | };
|
81 | 83 |
|
| 84 | +#undef _always_inline |
| 85 | + |
82 | 86 | #endif
|
0 commit comments