-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolution_of_array_initialization_by_string_literal.cpp
More file actions
46 lines (43 loc) · 3.51 KB
/
solution_of_array_initialization_by_string_literal.cpp
File metadata and controls
46 lines (43 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//solution_of_array_initialization_by_string_literal.cpp
struct Person
{
const char name[128];
template<int N>
explicit Person(const char (&str)[N])
: name
{
N > 0 ? str[0] : '\0', N > 1 ? str[1] : '\0', N > 2 ? str[2] : '\0', N > 3 ? str[3] : '\0', N > 4 ? str[4] : '\0',
N > 5 ? str[5] : '\0', N > 6 ? str[6] : '\0', N > 7 ? str[7] : '\0', N > 8 ? str[8] : '\0', N > 9 ? str[9] : '\0',
N > 10 ? str[10] : '\0', N > 11 ? str[11] : '\0', N > 12 ? str[12] : '\0', N > 13 ? str[13] : '\0', N > 14 ? str[14] : '\0',
N > 15 ? str[15] : '\0', N > 16 ? str[16] : '\0', N > 17 ? str[17] : '\0', N > 18 ? str[18] : '\0', N > 19 ? str[19] : '\0',
N > 20 ? str[20] : '\0', N > 21 ? str[21] : '\0', N > 22 ? str[22] : '\0', N > 23 ? str[23] : '\0', N > 24 ? str[24] : '\0',
N > 25 ? str[25] : '\0', N > 26 ? str[26] : '\0', N > 27 ? str[27] : '\0', N > 28 ? str[28] : '\0', N > 29 ? str[29] : '\0',
N > 30 ? str[30] : '\0', N > 31 ? str[31] : '\0', N > 32 ? str[32] : '\0', N > 33 ? str[33] : '\0', N > 34 ? str[34] : '\0',
N > 35 ? str[35] : '\0', N > 36 ? str[36] : '\0', N > 37 ? str[37] : '\0', N > 38 ? str[38] : '\0', N > 39 ? str[39] : '\0',
N > 40 ? str[40] : '\0', N > 41 ? str[41] : '\0', N > 42 ? str[42] : '\0', N > 43 ? str[43] : '\0', N > 44 ? str[44] : '\0',
N > 45 ? str[45] : '\0', N > 46 ? str[46] : '\0', N > 47 ? str[47] : '\0', N > 48 ? str[48] : '\0', N > 49 ? str[49] : '\0',
N > 50 ? str[50] : '\0', N > 51 ? str[51] : '\0', N > 52 ? str[52] : '\0', N > 53 ? str[53] : '\0', N > 54 ? str[54] : '\0',
N > 55 ? str[55] : '\0', N > 56 ? str[56] : '\0', N > 57 ? str[57] : '\0', N > 58 ? str[58] : '\0', N > 59 ? str[59] : '\0',
N > 60 ? str[60] : '\0', N > 61 ? str[61] : '\0', N > 62 ? str[62] : '\0', N > 63 ? str[63] : '\0', N > 64 ? str[64] : '\0',
N > 65 ? str[65] : '\0', N > 66 ? str[66] : '\0', N > 67 ? str[67] : '\0', N > 68 ? str[68] : '\0', N > 69 ? str[69] : '\0',
N > 70 ? str[70] : '\0', N > 71 ? str[71] : '\0', N > 72 ? str[72] : '\0', N > 73 ? str[73] : '\0', N > 74 ? str[74] : '\0',
N > 75 ? str[75] : '\0', N > 76 ? str[76] : '\0', N > 77 ? str[77] : '\0', N > 78 ? str[78] : '\0', N > 79 ? str[79] : '\0',
N > 80 ? str[80] : '\0', N > 81 ? str[81] : '\0', N > 82 ? str[82] : '\0', N > 83 ? str[83] : '\0', N > 84 ? str[84] : '\0',
N > 85 ? str[85] : '\0', N > 86 ? str[86] : '\0', N > 87 ? str[87] : '\0', N > 88 ? str[88] : '\0', N > 89 ? str[89] : '\0',
N > 90 ? str[90] : '\0', N > 91 ? str[91] : '\0', N > 92 ? str[92] : '\0', N > 93 ? str[93] : '\0', N > 94 ? str[94] : '\0',
N > 95 ? str[95] : '\0', N > 96 ? str[96] : '\0', N > 97 ? str[97] : '\0', N > 98 ? str[98] : '\0', N > 99 ? str[99] : '\0',
N > 100 ? str[100] : '\0', N > 101 ? str[101] : '\0', N > 102 ? str[102] : '\0', N > 103 ? str[103] : '\0', N > 104 ? str[104] : '\0',
N > 105 ? str[105] : '\0', N > 106 ? str[106] : '\0', N > 107 ? str[107] : '\0', N > 108 ? str[108] : '\0', N > 109 ? str[109] : '\0',
N > 110 ? str[110] : '\0', N > 111 ? str[111] : '\0', N > 112 ? str[112] : '\0', N > 113 ? str[113] : '\0', N > 114 ? str[114] : '\0',
N > 115 ? str[115] : '\0', N > 116 ? str[116] : '\0', N > 117 ? str[117] : '\0', N > 118 ? str[118] : '\0', N > 119 ? str[119] : '\0',
N > 120 ? str[120] : '\0', N > 121 ? str[121] : '\0', N > 122 ? str[122] : '\0', N > 123 ? str[123] : '\0', N > 124 ? str[124] : '\0',
N > 125 ? str[125] : '\0', N > 126 ? str[126] : '\0', N > 127 ? str[127] : '\0',
} { }
};
#include <iostream>
int main(void)
{
Person me{"Yamikumo"};
std::cout << me.name;
return 0;
}