Skip to content
This repository was archived by the owner on Aug 19, 2021. It is now read-only.

Commit d2d9e06

Browse files
committed
Removed use of gcc-specific struct initializers
Although it saves a significant number of lines, the previously used struct initializers are limited to gcc-extensions, C99, and C++11, causing compilation errors on C++03 compilers such as ARMCC and IAR. Effectively reverts 1db78bc
1 parent 5effcbc commit d2d9e06

File tree

2 files changed

+195
-51
lines changed

2 files changed

+195
-51
lines changed

Event.h

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class Event<void()> {
6060
return 0;
6161
}
6262

63-
new (p) C((C){*reinterpret_cast<F*>(e+1)});
63+
new (p) C(*reinterpret_cast<F*>(e+1));
6464
equeue_event_delay(p, e->delay);
6565
equeue_event_period(p, e->period);
6666
equeue_event_dtor(p, &local::dtor);
@@ -226,27 +226,27 @@ class Event<void()> {
226226
// Convenience overloads for Event construction
227227
template <typename F, typename B0>
228228
Event(EventQueue *q, F f, B0 b0) {
229-
new (this) Event(q, (EventQueue::context10<F, B0>){f, b0});
229+
new (this) Event(q, EventQueue::context10<F, B0>(f, b0));
230230
}
231231

232232
template <typename F, typename B0, typename B1>
233233
Event(EventQueue *q, F f, B0 b0, B1 b1) {
234-
new (this) Event(q, (EventQueue::context20<F, B0, B1>){f, b0, b1});
234+
new (this) Event(q, EventQueue::context20<F, B0, B1>(f, b0, b1));
235235
}
236236

237237
template <typename F, typename B0, typename B1, typename B2>
238238
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2) {
239-
new (this) Event(q, (EventQueue::context30<F, B0, B1, B2>){f, b0, b1, b2});
239+
new (this) Event(q, EventQueue::context30<F, B0, B1, B2>(f, b0, b1, b2));
240240
}
241241

242242
template <typename F, typename B0, typename B1, typename B2, typename B3>
243243
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3) {
244-
new (this) Event(q, (EventQueue::context40<F, B0, B1, B2, B3>){f, b0, b1, b2, b3});
244+
new (this) Event(q, EventQueue::context40<F, B0, B1, B2, B3>(f, b0, b1, b2, b3));
245245
}
246246

247247
template <typename F, typename B0, typename B1, typename B2, typename B3, typename B4>
248248
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) {
249-
new (this) Event(q, (EventQueue::context50<F, B0, B1, B2, B3, B4>){f, b0, b1, b2, b3, b4});
249+
new (this) Event(q, EventQueue::context50<F, B0, B1, B2, B3, B4>(f, b0, b1, b2, b3, b4));
250250
}
251251

252252
template <typename T, typename R, typename B0>
@@ -382,7 +382,7 @@ class Event<void(A0)> {
382382
return 0;
383383
}
384384

385-
new (p) C((C){*reinterpret_cast<F*>(e+1), a0});
385+
new (p) C(*reinterpret_cast<F*>(e+1), a0);
386386
equeue_event_delay(p, e->delay);
387387
equeue_event_period(p, e->period);
388388
equeue_event_dtor(p, &local::dtor);
@@ -548,27 +548,27 @@ class Event<void(A0)> {
548548
// Convenience overloads for Event construction
549549
template <typename F, typename B0>
550550
Event(EventQueue *q, F f, B0 b0) {
551-
new (this) Event(q, (EventQueue::context11<F, B0, A0>){f, b0});
551+
new (this) Event(q, EventQueue::context11<F, B0, A0>(f, b0));
552552
}
553553

554554
template <typename F, typename B0, typename B1>
555555
Event(EventQueue *q, F f, B0 b0, B1 b1) {
556-
new (this) Event(q, (EventQueue::context21<F, B0, B1, A0>){f, b0, b1});
556+
new (this) Event(q, EventQueue::context21<F, B0, B1, A0>(f, b0, b1));
557557
}
558558

559559
template <typename F, typename B0, typename B1, typename B2>
560560
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2) {
561-
new (this) Event(q, (EventQueue::context31<F, B0, B1, B2, A0>){f, b0, b1, b2});
561+
new (this) Event(q, EventQueue::context31<F, B0, B1, B2, A0>(f, b0, b1, b2));
562562
}
563563

564564
template <typename F, typename B0, typename B1, typename B2, typename B3>
565565
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3) {
566-
new (this) Event(q, (EventQueue::context41<F, B0, B1, B2, B3, A0>){f, b0, b1, b2, b3});
566+
new (this) Event(q, EventQueue::context41<F, B0, B1, B2, B3, A0>(f, b0, b1, b2, b3));
567567
}
568568

569569
template <typename F, typename B0, typename B1, typename B2, typename B3, typename B4>
570570
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) {
571-
new (this) Event(q, (EventQueue::context51<F, B0, B1, B2, B3, B4, A0>){f, b0, b1, b2, b3, b4});
571+
new (this) Event(q, EventQueue::context51<F, B0, B1, B2, B3, B4, A0>(f, b0, b1, b2, b3, b4));
572572
}
573573

574574
template <typename T, typename R, typename B0>
@@ -704,7 +704,7 @@ class Event<void(A0, A1)> {
704704
return 0;
705705
}
706706

707-
new (p) C((C){*reinterpret_cast<F*>(e+1), a0, a1});
707+
new (p) C(*reinterpret_cast<F*>(e+1), a0, a1);
708708
equeue_event_delay(p, e->delay);
709709
equeue_event_period(p, e->period);
710710
equeue_event_dtor(p, &local::dtor);
@@ -870,27 +870,27 @@ class Event<void(A0, A1)> {
870870
// Convenience overloads for Event construction
871871
template <typename F, typename B0>
872872
Event(EventQueue *q, F f, B0 b0) {
873-
new (this) Event(q, (EventQueue::context12<F, B0, A0, A1>){f, b0});
873+
new (this) Event(q, EventQueue::context12<F, B0, A0, A1>(f, b0));
874874
}
875875

876876
template <typename F, typename B0, typename B1>
877877
Event(EventQueue *q, F f, B0 b0, B1 b1) {
878-
new (this) Event(q, (EventQueue::context22<F, B0, B1, A0, A1>){f, b0, b1});
878+
new (this) Event(q, EventQueue::context22<F, B0, B1, A0, A1>(f, b0, b1));
879879
}
880880

881881
template <typename F, typename B0, typename B1, typename B2>
882882
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2) {
883-
new (this) Event(q, (EventQueue::context32<F, B0, B1, B2, A0, A1>){f, b0, b1, b2});
883+
new (this) Event(q, EventQueue::context32<F, B0, B1, B2, A0, A1>(f, b0, b1, b2));
884884
}
885885

886886
template <typename F, typename B0, typename B1, typename B2, typename B3>
887887
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3) {
888-
new (this) Event(q, (EventQueue::context42<F, B0, B1, B2, B3, A0, A1>){f, b0, b1, b2, b3});
888+
new (this) Event(q, EventQueue::context42<F, B0, B1, B2, B3, A0, A1>(f, b0, b1, b2, b3));
889889
}
890890

891891
template <typename F, typename B0, typename B1, typename B2, typename B3, typename B4>
892892
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) {
893-
new (this) Event(q, (EventQueue::context52<F, B0, B1, B2, B3, B4, A0, A1>){f, b0, b1, b2, b3, b4});
893+
new (this) Event(q, EventQueue::context52<F, B0, B1, B2, B3, B4, A0, A1>(f, b0, b1, b2, b3, b4));
894894
}
895895

896896
template <typename T, typename R, typename B0>
@@ -1026,7 +1026,7 @@ class Event<void(A0, A1, A2)> {
10261026
return 0;
10271027
}
10281028

1029-
new (p) C((C){*reinterpret_cast<F*>(e+1), a0, a1, a2});
1029+
new (p) C(*reinterpret_cast<F*>(e+1), a0, a1, a2);
10301030
equeue_event_delay(p, e->delay);
10311031
equeue_event_period(p, e->period);
10321032
equeue_event_dtor(p, &local::dtor);
@@ -1192,27 +1192,27 @@ class Event<void(A0, A1, A2)> {
11921192
// Convenience overloads for Event construction
11931193
template <typename F, typename B0>
11941194
Event(EventQueue *q, F f, B0 b0) {
1195-
new (this) Event(q, (EventQueue::context13<F, B0, A0, A1, A2>){f, b0});
1195+
new (this) Event(q, EventQueue::context13<F, B0, A0, A1, A2>(f, b0));
11961196
}
11971197

11981198
template <typename F, typename B0, typename B1>
11991199
Event(EventQueue *q, F f, B0 b0, B1 b1) {
1200-
new (this) Event(q, (EventQueue::context23<F, B0, B1, A0, A1, A2>){f, b0, b1});
1200+
new (this) Event(q, EventQueue::context23<F, B0, B1, A0, A1, A2>(f, b0, b1));
12011201
}
12021202

12031203
template <typename F, typename B0, typename B1, typename B2>
12041204
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2) {
1205-
new (this) Event(q, (EventQueue::context33<F, B0, B1, B2, A0, A1, A2>){f, b0, b1, b2});
1205+
new (this) Event(q, EventQueue::context33<F, B0, B1, B2, A0, A1, A2>(f, b0, b1, b2));
12061206
}
12071207

12081208
template <typename F, typename B0, typename B1, typename B2, typename B3>
12091209
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3) {
1210-
new (this) Event(q, (EventQueue::context43<F, B0, B1, B2, B3, A0, A1, A2>){f, b0, b1, b2, b3});
1210+
new (this) Event(q, EventQueue::context43<F, B0, B1, B2, B3, A0, A1, A2>(f, b0, b1, b2, b3));
12111211
}
12121212

12131213
template <typename F, typename B0, typename B1, typename B2, typename B3, typename B4>
12141214
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) {
1215-
new (this) Event(q, (EventQueue::context53<F, B0, B1, B2, B3, B4, A0, A1, A2>){f, b0, b1, b2, b3, b4});
1215+
new (this) Event(q, EventQueue::context53<F, B0, B1, B2, B3, B4, A0, A1, A2>(f, b0, b1, b2, b3, b4));
12161216
}
12171217

12181218
template <typename T, typename R, typename B0>
@@ -1348,7 +1348,7 @@ class Event<void(A0, A1, A2, A3)> {
13481348
return 0;
13491349
}
13501350

1351-
new (p) C((C){*reinterpret_cast<F*>(e+1), a0, a1, a2, a3});
1351+
new (p) C(*reinterpret_cast<F*>(e+1), a0, a1, a2, a3);
13521352
equeue_event_delay(p, e->delay);
13531353
equeue_event_period(p, e->period);
13541354
equeue_event_dtor(p, &local::dtor);
@@ -1514,27 +1514,27 @@ class Event<void(A0, A1, A2, A3)> {
15141514
// Convenience overloads for Event construction
15151515
template <typename F, typename B0>
15161516
Event(EventQueue *q, F f, B0 b0) {
1517-
new (this) Event(q, (EventQueue::context14<F, B0, A0, A1, A2, A3>){f, b0});
1517+
new (this) Event(q, EventQueue::context14<F, B0, A0, A1, A2, A3>(f, b0));
15181518
}
15191519

15201520
template <typename F, typename B0, typename B1>
15211521
Event(EventQueue *q, F f, B0 b0, B1 b1) {
1522-
new (this) Event(q, (EventQueue::context24<F, B0, B1, A0, A1, A2, A3>){f, b0, b1});
1522+
new (this) Event(q, EventQueue::context24<F, B0, B1, A0, A1, A2, A3>(f, b0, b1));
15231523
}
15241524

15251525
template <typename F, typename B0, typename B1, typename B2>
15261526
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2) {
1527-
new (this) Event(q, (EventQueue::context34<F, B0, B1, B2, A0, A1, A2, A3>){f, b0, b1, b2});
1527+
new (this) Event(q, EventQueue::context34<F, B0, B1, B2, A0, A1, A2, A3>(f, b0, b1, b2));
15281528
}
15291529

15301530
template <typename F, typename B0, typename B1, typename B2, typename B3>
15311531
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3) {
1532-
new (this) Event(q, (EventQueue::context44<F, B0, B1, B2, B3, A0, A1, A2, A3>){f, b0, b1, b2, b3});
1532+
new (this) Event(q, EventQueue::context44<F, B0, B1, B2, B3, A0, A1, A2, A3>(f, b0, b1, b2, b3));
15331533
}
15341534

15351535
template <typename F, typename B0, typename B1, typename B2, typename B3, typename B4>
15361536
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) {
1537-
new (this) Event(q, (EventQueue::context54<F, B0, B1, B2, B3, B4, A0, A1, A2, A3>){f, b0, b1, b2, b3, b4});
1537+
new (this) Event(q, EventQueue::context54<F, B0, B1, B2, B3, B4, A0, A1, A2, A3>(f, b0, b1, b2, b3, b4));
15381538
}
15391539

15401540
template <typename T, typename R, typename B0>
@@ -1670,7 +1670,7 @@ class Event<void(A0, A1, A2, A3, A4)> {
16701670
return 0;
16711671
}
16721672

1673-
new (p) C((C){*reinterpret_cast<F*>(e+1), a0, a1, a2, a3, a4});
1673+
new (p) C(*reinterpret_cast<F*>(e+1), a0, a1, a2, a3, a4);
16741674
equeue_event_delay(p, e->delay);
16751675
equeue_event_period(p, e->period);
16761676
equeue_event_dtor(p, &local::dtor);
@@ -1836,27 +1836,27 @@ class Event<void(A0, A1, A2, A3, A4)> {
18361836
// Convenience overloads for Event construction
18371837
template <typename F, typename B0>
18381838
Event(EventQueue *q, F f, B0 b0) {
1839-
new (this) Event(q, (EventQueue::context15<F, B0, A0, A1, A2, A3, A4>){f, b0});
1839+
new (this) Event(q, EventQueue::context15<F, B0, A0, A1, A2, A3, A4>(f, b0));
18401840
}
18411841

18421842
template <typename F, typename B0, typename B1>
18431843
Event(EventQueue *q, F f, B0 b0, B1 b1) {
1844-
new (this) Event(q, (EventQueue::context25<F, B0, B1, A0, A1, A2, A3, A4>){f, b0, b1});
1844+
new (this) Event(q, EventQueue::context25<F, B0, B1, A0, A1, A2, A3, A4>(f, b0, b1));
18451845
}
18461846

18471847
template <typename F, typename B0, typename B1, typename B2>
18481848
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2) {
1849-
new (this) Event(q, (EventQueue::context35<F, B0, B1, B2, A0, A1, A2, A3, A4>){f, b0, b1, b2});
1849+
new (this) Event(q, EventQueue::context35<F, B0, B1, B2, A0, A1, A2, A3, A4>(f, b0, b1, b2));
18501850
}
18511851

18521852
template <typename F, typename B0, typename B1, typename B2, typename B3>
18531853
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3) {
1854-
new (this) Event(q, (EventQueue::context45<F, B0, B1, B2, B3, A0, A1, A2, A3, A4>){f, b0, b1, b2, b3});
1854+
new (this) Event(q, EventQueue::context45<F, B0, B1, B2, B3, A0, A1, A2, A3, A4>(f, b0, b1, b2, b3));
18551855
}
18561856

18571857
template <typename F, typename B0, typename B1, typename B2, typename B3, typename B4>
18581858
Event(EventQueue *q, F f, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4) {
1859-
new (this) Event(q, (EventQueue::context55<F, B0, B1, B2, B3, B4, A0, A1, A2, A3, A4>){f, b0, b1, b2, b3, b4});
1859+
new (this) Event(q, EventQueue::context55<F, B0, B1, B2, B3, B4, A0, A1, A2, A3, A4>(f, b0, b1, b2, b3, b4));
18601860
}
18611861

18621862
template <typename T, typename R, typename B0>

0 commit comments

Comments
 (0)