作者yoco315 (眠月)
看板C_and_CPP
標題Re: [情報] C++大師認證
時間Tue Feb 26 23:26:08 2013
※ 引述《uranusjr (←這人是超級笨蛋)》之銘言:
: : 整個就是
: : \.?[0-9]([0-9.] | [eE][+-] | identifier-nondigit)*
: : 好,我的問題來了,
: : 根據他範例給的一個 1.0e2
: : 這東西完全無法被他給的規則 parse 阿!
: 正規表示式怎麼分析忘記了, 我要去查一下書XD
: 不過你那個 regex 肯定是不等價的, 1.02e 這種東西會被允許, 但是標準是不行
自己找到答案了
http://boost.2283326.n4.nabble.com/wave-pp-number-bug-td2601369.html
http://stackoverflow.com/questions/3003521/why-is-this-c-or-c-macro-not-expanded-by-the-preprocessor
https://groups.google.com/forum/?fromgroups=#!topic/comp.std.c++/xGAalNp3Yfw
標準沒錯,俺不可質疑神 = =||
的確這種怪東西就是 pp-number
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 182.235.89.169
→ loveme00835:xD 看來這個連假大家可以拚一拚了 02/26 23:38
→ uranusjr:喔我頓悟了, 所以 pp-number 'e' sign 要特別列出來 02/26 23:47
→ azureblaze:簡單說這東西還沒有要被轉成真的數字所以很寬鬆? 02/26 23:53
→ yoco315:對對對,然後那個 2e0 的 e 其實不是 'e' sign 的 'e' 02/27 00:02
→ yoco315:而是 identifier-nondigit 這個集合裡面,所以是 match 的 02/27 00:03
→ yoco315:一個連假應該有難度 >"<~ 02/27 00:11
→ windows2k:注意: 還有 1.......2 這種pp-number 02/27 08:31
→ yoco315:嗯,我現在知道了,反正不用多想,看著標準照code就對了XD 02/27 09:25