質問編集履歴

1

解決方法に関する追記

2018/02/04 16:08

投稿

task4233
task4233

スコア106

test CHANGED
File without changes
test CHANGED
@@ -93,3 +93,107 @@
93
93
  Xcode version 9.2
94
94
 
95
95
  Siv3D version 0.2.1
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ ## 解決したコードとその方法に関する追記
104
+
105
+
106
+
107
+ ```Cpp
108
+
109
+ # include <Siv3D.hpp>
110
+
111
+ # include <HamFramework.hpp>
112
+
113
+
114
+
115
+ #define FOR(i,a,b) for(int i=(int)a;i<(int)b;++i)
116
+
117
+ #define REP(i,n) FOR(i,0,n)
118
+
119
+
120
+
121
+ namespace GameInfo
122
+
123
+ {
124
+
125
+ // ここでテキストをstd::u32stringであることを明示するために、
126
+
127
+ // プレフィックスUおよび、サフィックスsを付与する必要があった。
128
+
129
+ const String Title(U"テキスト"s);
130
+
131
+ }
132
+
133
+
134
+
135
+
136
+
137
+ void Main()
138
+
139
+ {
140
+
141
+ Graphics::SetBackground(Palette::White);
142
+
143
+ Window::SetTitle(GameInfo::Title);
144
+
145
+
146
+
147
+ while (System::Update())
148
+
149
+ {
150
+
151
+ // 中身の処理
152
+
153
+ }
154
+
155
+ }
156
+
157
+
158
+
159
+
160
+
161
+ ```
162
+
163
+
164
+
165
+
166
+
167
+ C++14ではサフィックスsを指定しないとstringと認識されない?そうです。
168
+
169
+
170
+
171
+ > C++14環境であれば、std::basic_string用の特殊なリテラルを利用することが可能です。
172
+
173
+ > 文字列リテラルに対してサフィックスsを指定することで、string型への変換が行われます。
174
+
175
+ [参考にしたページ](http://marycore.jp/prog/cpp/convert-char-to-string/#const%20char%2A%20→%20std%3A%3Astring%20%28C%2B%2B14%29)
176
+
177
+
178
+
179
+ さらに、Siv3Dのs3d::Stringの定義を調べたところ、(Siv3D/String.hpp参照)
180
+
181
+ ```Cpp
182
+
183
+ using string_type = std::u32string;
184
+
185
+
186
+
187
+ String(const string_type& text) : m_string(text) {}
188
+
189
+ ```
190
+
191
+
192
+
193
+ となっていたため、更にstd::stringからstd::u32stringに変換するために、
194
+
195
+ プレフィックスUを指定する必要がありました。
196
+
197
+
198
+
199
+ C++14で変更があったことを知るいい機会になりました。