トップページ > プログラム > 2015年01月22日 > QfKlzsaM

書き込み順位&時間帯一覧

6 位/179 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001111000000100005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part115 [転載禁止]©2ch.net
【Lua】組み込み系言語総合 その6【Squirrel】

書き込みレス一覧

C++相談室 part115 [転載禁止]©2ch.net
593 :デフォルトの名無しさん[sage]:2015/01/22(木) 09:37:03.15 ID:QfKlzsaM
ヌル終端文字列と、非ヌル終端文字列をコンパイル時に区別するには、
どのように型定義をすれば良いでしょうか?

クラスであれば boost::basic_string_ref から null_terminated_ref を派生して
型の差を表現できたのですが、配列を指すポインタでも強い型付けをしたいのです。
C++相談室 part115 [転載禁止]©2ch.net
595 :デフォルトの名無しさん[sage]:2015/01/22(木) 10:10:37.91 ID:QfKlzsaM
>>594
長さ (int か size_t) とセットで扱うケースです。

const NonTerminatedCharSeq seq;
size_t len;
getStringBuffer(&seq, &len);
requireNonTermAndLen(seq, len); // ← OK
requireTerminatedString(seq); // ← NG: これをエラーにしたい
C++相談室 part115 [転載禁止]©2ch.net
597 :デフォルトの名無しさん[sage]:2015/01/22(木) 11:39:27.71 ID:QfKlzsaM
>>595 の NonTerminatedCharSeq は 非const でした。 const CharType* のつもりでした。

>>596
末尾が分からないので、throw 前に、ヌル終端を確認する段階で segfault で落ちると思います。
C++相談室 part115 [転載禁止]©2ch.net
601 :デフォルトの名無しさん[sage]:2015/01/22(木) 12:34:43.11 ID:QfKlzsaM
>>600
そうですね。 スマートポインタ的な型を噛ませることにします。

>>598
コンパイル時に区別する話に throw が出てくるのはナンセンスです。
【Lua】組み込み系言語総合 その6【Squirrel】
625 :デフォルトの名無しさん[sage]:2015/01/22(木) 19:34:31.74 ID:QfKlzsaM
JsRTで遊んでみているが、
IDispatchをVARIANT経由でJavaScript側に公開できることがわかった。
COMの資産を手間無く使えるので、その手の再利用が必要な場合は便利かもしれない。

なお、WebBrowserコントロールが使っていると思われるスクリプト環境はさすがに取得できないようだ。
無理やり連携されるなら window.external を介してこれも IDispatch 経由でやり取りすることになる。

悪くない。 Microsoft も .NET とか捨てて、JsRTとTypeSciptで行けばいいんじゃないかな・・・?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。