トップページ > プログラム > 2015年09月11日 > xy/6VGnh

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

11 位/151 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001001000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
190
C++相談室 part119 [転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part119 [転載禁止]©2ch.net
190 :デフォルトの名無しさん[sage]:2015/09/11(金) 15:00:10.29 ID:xy/6VGnh
C++11で、型推論autoを使って楽をしようと思ったんだが、
2つの変数の型を自動的に整合させる方法が分からないのだ。

void some_job() {
const auto loop_times = 10;

for (auto cnt = 0; cnt != loop_times; ++cnt) {
/* ループ内の処理 */
}
} // (インデントはおそらく破壊される)

上の場合、ループ回数 loop_times と、ループカウンタ cnt は
どちらのautoもintと判断されるのでとりあえず一致する。
しかし auto loop_times の初期値にintでない値を与えると
当然ながら loop_times と cnt の型が違ってしまう。

「cntの型は、loop_timesの型からconstを外したものだよ」
という変数宣言の書き方はないだろうか?

諸兄らの教えを乞いたい。
C++相談室 part119 [転載禁止]©2ch.net
193 :190[sage]:2015/09/11(金) 18:00:12.76 ID:xy/6VGnh
>>192
まさに希望した通りの情報です。感謝します。
std::remove_const 云々 と書くのか。

sizeof() と typeid().name() とで並べて見たところ
loop_times と cnt の型は一致した。
loop_times = 10U; や loop_times = '3'; でも
試したら自動的に型が合った。


テンプレート構造体に閉じ込めたtypedefか。
こんな仕掛けを思いつくとは尊敬すべき変態さん達だな。


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