{}?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kaiten

{}?

#1

投稿記事 by kaiten » 16年前

おかしなタイトルですみません。いまいち言い方が思いつかなかったもので。

いろいろ探していて[url]http://<a%20href=[/url]なるものを入手したのですが疑問に思ったことがあるので……

普通のfor文のように{}が使えるようになっているのですが、このようにする方法が知りたいのです。
ソース見て寸刻で頭がこんがらがってしまったのですが、一体どのような方法で行っているのでしょうか?
解ればでいいので教えていただけるとありがたいです。

#最近質問してばかりだなぁ……

Mist

Re:{}?

#2

投稿記事 by Mist » 16年前

ヘッダの中身を読んだ?
431行目~456行目みるとわかると思うけど、evil_for = forなんだから{}が使えるのは当たりまえ。

Mist

Re:{}?

#3

投稿記事 by Mist » 16年前

もうちょっと詳しく書くと
evil_for(c) {
    ...
}

は
#define evil_for(c) evil_for_ex(c, c.begin(), evil_i(c) != c.end(), ++evil_i(c))
と定義されているから

evil_for_ex(c, c.begin(), evil_i(c) != c.end(), ++evil_i(c)) {
    ...
}

となり、そして
#define evil_for_ex(c, begin, expr, incr) \
  for(evil_for_tools::unknown_holder c##_evil_i( \
  evil_for_tools::copy_object(begin), evil_for_tools::get_deleter(c)); \
  expr; incr)
と定義されているので

for(evil_for_tools::unknown_holder c##_evil_i(evil_for_tools::copy_object(begin),
                                              evil_for_tools::get_deleter(c));
                                              expr; incr) {
    ...
}

となる。

kaiten

Re:{}?

#4

投稿記事 by kaiten » 16年前

自分で思っていたより稚拙…というかしょーもない質問してしまったようです(汗
#defineをこのように使ったことがなかったので…といっても予測ついていいレベルですね。
しかし、恐らく指摘していただかなければ自分ではずっとわからないと思って終わらせていたと思います。
Mistさんのおかげで理解することができました。ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る