Skip to content

Commit 6e57d5e

Browse files
committed
Added stream operator overload for printing.
1 parent 6177cfc commit 6e57d5e

File tree

3 files changed

+30
-41
lines changed

3 files changed

+30
-41
lines changed

Array.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,23 @@ class Array
4545
T values_[MAX_SIZE];
4646
size_t size_;
4747
};
48+
49+
template <typename T, size_t MAX_SIZE>
50+
inline Print &operator <<(Print &stream, const Array<T,MAX_SIZE> &array)
51+
{
52+
stream.print("[");
53+
for (int i=0; i<array.size(); i++)
54+
{
55+
if (i != 0)
56+
{
57+
stream.print(",");
58+
}
59+
stream.print(array[i]);
60+
}
61+
stream.print("]");
62+
return stream;
63+
}
64+
4865
#include "ArrayDefinitions.h"
4966

5067
#endif

examples/AdvancedArrayTester/AdvancedArrayTester.ino

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,12 @@ const unsigned int MAX_SIZE = 10;
88

99
Array<int, MAX_SIZE> array;
1010

11-
void printArray(Array<int,MAX_SIZE> array)
12-
{
13-
Serial << "array = [";
14-
for (int i=0; i<array.size(); i++)
15-
{
16-
if (i != 0)
17-
{
18-
Serial << ",";
19-
}
20-
Serial << array[i];
21-
}
22-
Serial << "]" << endl;
23-
}
24-
2511
void setup()
2612
{
2713
Serial.begin(BAUDRATE);
2814
delay(1000);
2915

30-
printArray(array);
16+
Serial << array << endl;
3117
Serial << "array.max_size() = " << array.max_size() << endl;
3218
Serial << "array.size() = " << array.size() << endl;
3319
Serial << "array.empty() = " << array.empty() << endl;
@@ -38,7 +24,7 @@ void setup()
3824
int array_simple[simple_size] = {8,9,10};
3925
array.assign(simple_size,array_simple);
4026

41-
printArray(array);
27+
Serial << array << endl;
4228
Serial << "array.max_size() = " << array.max_size() << endl;
4329
Serial << "array.size() = " << array.size() << endl;
4430
Serial << "array.empty() = " << array.empty() << endl;
@@ -47,7 +33,7 @@ void setup()
4733

4834
array.push_back(39);
4935
array.push_back(73);
50-
printArray(array);
36+
Serial << array << endl;
5137
Serial << "array.size() = " << array.size() << endl;
5238
Serial << "array.front() = " << array.front() << endl;
5339
Serial << "array.back() = " << array.back() << endl;
@@ -56,7 +42,7 @@ void setup()
5642
array.pop_back();
5743
array.pop_back();
5844
array.pop_back();
59-
printArray(array);
45+
Serial << array << endl;
6046
Serial << "array.size() = " << array.size() << endl;
6147
Serial << "array.front() = " << array.front() << endl;
6248
Serial << "array.back() = " << array.back() << endl;

examples/ArrayTester/ArrayTester.ino

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,10 @@ const int BAUDRATE = 9600;
77

88
const int ELEMENT_COUNT = 5;
99

10-
void printArray(Array<int,ELEMENT_COUNT> array)
11-
{
12-
Serial << "[";
13-
for (int i=0; i<ELEMENT_COUNT; i++)
14-
{
15-
if (i != 0)
16-
{
17-
Serial << ",";
18-
}
19-
Serial << array[i];
20-
}
21-
Serial << "]" << endl;
22-
}
23-
2410
void printArray(const int (&array)[ELEMENT_COUNT])
2511
{
2612
Array<int,ELEMENT_COUNT> array_copy(array);
27-
printArray(array_copy);
13+
Serial << array_copy << endl;
2814
}
2915

3016
Array<int,ELEMENT_COUNT> generateArray()
@@ -61,39 +47,39 @@ void setup()
6147
array.push_back(0);
6248
array.pop_back();
6349
Serial << "array:" << endl;
64-
printArray(array);
50+
Serial << array << endl;
6551

6652
const int array_simple[ELEMENT_COUNT] = {15,14,13,12,11};
6753
Serial << "array_simple:" << endl;
6854
printArray(array_simple);
6955

7056
Array<int,ELEMENT_COUNT> array_copy(array_simple);
7157
Serial << "array_copy:" << endl;
72-
printArray(array_copy);
58+
Serial << array_copy << endl;
7359

7460
Array<int,ELEMENT_COUNT> array_initialized(ELEMENT_COUNT);
7561
Serial << "array_initialized:" << endl;
76-
printArray(array_initialized);
62+
Serial << array_initialized << endl;
7763

7864
array_initialized.fill(37);
7965
Serial << "array_initialized.fill(37):" << endl;
80-
printArray(array_initialized);
66+
Serial << array_initialized << endl;
8167

8268
array_initialized.fill(array_simple);
8369
Serial << "array_initialized.fill(array_simple):" << endl;
84-
printArray(array_initialized);
70+
Serial << array_initialized << endl;
8571

8672
array_initialized[3] = 666;
8773
Serial << "array_initialized[3] = 666:" << endl;
88-
printArray(array_initialized);
74+
Serial << array_initialized << endl;
8975

9076
Array<int,ELEMENT_COUNT> array_generated = generateArray();
9177
Serial << "array_generated:" << endl;
92-
printArray(array_generated);
78+
Serial << array_generated << endl;
9379

9480
Array<int,ELEMENT_COUNT> array_doubled = doubleElements(array_generated);
9581
Serial << "array_doubled:" << endl;
96-
printArray(array_doubled);
82+
Serial << array_doubled << endl;
9783

9884
int out_of_bounds = array_doubled[ELEMENT_COUNT+1];
9985
Serial << "out_of_bounds: " << out_of_bounds << endl;

0 commit comments

Comments
 (0)