MSVCRT std::for each 新しいページはコチラ
提供: yonewiki
(→概要) |
|||
25行: | 25行: | ||
− | + | ということなので、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形式の文字列を最後尾に持つようになります。 | |