MSVCRT std::for each 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(概要)
25行: 25行:
  
  
 ということなので、for_eachで関数を繰り返し実行するようにプログラムはされていますが、単純にQByteArrayテンプレート化されているvector型argvUTF8Qの最後尾に付け足す処理が実行されます。このとき、argvUTF8Qは外からの引数としてラムダ式の [] 内に記述してある必要があります。そして、argにはLPWSTR* argvUTF16のアドレスが渡されconst char* argはキャストされてQString::fromUtf16静的メンバ関数を利用して、UTF-16にエンコードされます。さらにfromUtf16(xxx).toUtf8という記述であるため、UTF-16になった文字列が、UTF-8に変換された値がemplace_backの引数となるため、結局はargがUTF-8になってargvUTF8QというQByteArray型テンプレート化されたvector型の値を最後尾に持つようになります。
+
 ということなので、for_eachで関数を繰り返し実行するようにプログラムはされていますが、要素数が2で、文字列が格納されている要素数が1であれば、単純にQByteArrayテンプレート化されているvector型argvUTF8Qの最後尾に付け足す処理が実行されます。このとき、argvUTF8Qあとで、使いたいのでfor_each内だけのオブジェクトでは活用できません。外からの引数としてラムダ式の [] 内に記述してある必要があります。そして、argにはLPWSTR* argvUTF16のアドレスが渡されconst char* argはキャストされてQString::fromUtf16静的メンバ関数を利用して、UTF-16にエンコードされます。さらにfromUtf16(xxx).toUtf8という記述であるため、UTF-16になった文字列が、UTF-8に変換された値がemplace_backの引数となるため、結局はargvUTF16から取り出された引数のargがUTF-8になってargvUTF8QというQByteArray型にテンプレート化されたvector型の値として、UTF-8形式の文字列を最後尾に持つようになります。
  
  

2021年2月12日 (金) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス