UfcppSample
UfcppSample copied to clipboard
文字列定数を data section に UTF-8 で記録
trafficstars
https://github.com/dotnet/roslyn/blob/main/docs/features/string-literals-data-section.md
文法上は何もなくて、「コンパイラーオプション次第でDLL中に文字列データを埋め込む方法が変わる」という話。 正直ブログに書くだけとかでもいいかも?
https://github.com/ufcpp/UfcppSample/tree/master/Demo/2025/StringInDataSection
主目的は UserString セクションの方がサイズ上限厳しい → それで Razor コンパイル結果が引っ掛かった → Data セクションならまだ余裕があるからそっちに書き込みしようか という話。
で、せっかくだから「UTF-8 で書こう」(u8 リテラルで既にやってるのでそれを流用)となり。
副次的に DLL サイズが小さくなりがちというメリットあり。
(「const string で埋め込むものって ASCII なことが多いし、UTF-8 の方が有利」というのが世の中の実情なので、現実的にはほぼ確実に DLL サイズ小さくなる。)
デメリットは「const string を読むときに UTF-8 → 16 の変換処理が1回かかる」みたいなコストあり。