Skip to content

Commit 0b502b3

Browse files
committed
Eliminate code duplication by template for println(...).
1 parent 8c725d5 commit 0b502b3

File tree

2 files changed

+24
-42
lines changed

2 files changed

+24
-42
lines changed

cores/esp8266/Print.cpp

+16-42
Original file line numberDiff line numberDiff line change
@@ -181,12 +181,6 @@ size_t Print::print(double n, int digits) {
181181
return printFloat(n, digits);
182182
}
183183

184-
size_t Print::println(const __FlashStringHelper *ifsh) {
185-
size_t n = print(ifsh);
186-
n += println();
187-
return n;
188-
}
189-
190184
size_t Print::print(const Printable& x) {
191185
return x.printTo(*this);
192186
}
@@ -195,76 +189,56 @@ size_t Print::println(void) {
195189
return print("\r\n");
196190
}
197191

192+
size_t Print::println(const __FlashStringHelper* ifsh) {
193+
return _println<const __FlashStringHelper*>(ifsh);
194+
}
195+
198196
size_t Print::println(const String &s) {
199-
size_t n = print(s);
200-
n += println();
201-
return n;
197+
return _println(s);
202198
}
203199

204200
size_t Print::println(const char c[]) {
205-
size_t n = print(c);
206-
n += println();
207-
return n;
201+
return _println(c);
208202
}
209203

210204
size_t Print::println(char c) {
211-
size_t n = print(c);
212-
n += println();
213-
return n;
205+
return _println(c);
214206
}
215207

216208
size_t Print::println(unsigned char b, int base) {
217-
size_t n = print(b, base);
218-
n += println();
219-
return n;
209+
return _println(b, base);
220210
}
221211

222212
size_t Print::println(int num, int base) {
223-
size_t n = print(num, base);
224-
n += println();
225-
return n;
213+
return _println(num, base);
226214
}
227215

228216
size_t Print::println(unsigned int num, int base) {
229-
size_t n = print(num, base);
230-
n += println();
231-
return n;
217+
return _println(num, base);
232218
}
233219

234220
size_t Print::println(long num, int base) {
235-
size_t n = print(num, base);
236-
n += println();
237-
return n;
221+
return _println(num, base);
238222
}
239223

240224
size_t Print::println(unsigned long num, int base) {
241-
size_t n = print(num, base);
242-
n += println();
243-
return n;
225+
return _println(num, base);
244226
}
245227

246228
size_t Print::println(long long num, int base) {
247-
size_t n = print(num, base);
248-
n += println();
249-
return n;
229+
return _println(num, base);
250230
}
251231

252232
size_t Print::println(unsigned long long num, int base) {
253-
size_t n = print(num, base);
254-
n += println();
255-
return n;
233+
return _println(num, base);
256234
}
257235

258236
size_t Print::println(double num, int digits) {
259-
size_t n = print(num, digits);
260-
n += println();
261-
return n;
237+
return _println(num, digits);
262238
}
263239

264240
size_t Print::println(const Printable& x) {
265-
size_t n = print(x);
266-
n += println();
267-
return n;
241+
return _println<const Printable&>(x);
268242
}
269243

270244
// Private Methods /////////////////////////////////////////////////////////////

cores/esp8266/Print.h

+8
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ class Print {
3939
size_t printNumber(unsigned long, uint8_t);
4040
size_t printNumber(unsigned long long, uint8_t);
4141
size_t printFloat(double, uint8_t);
42+
43+
template<typename T, typename... P> inline size_t _println(T v, P... args)
44+
{
45+
size_t n = print(v, args...);
46+
n += println();
47+
return n;
48+
};
49+
4250
protected:
4351
void setWriteError(int err = 1) {
4452
write_error = err;

0 commit comments

Comments
 (0)