[問題] 巨集的報錯,not declared in this scope
請各位先看下面這段程式碼
http://ideone.com/jfT4Bv
自己實作了一個簡陋的Boost Variant
目的是要搭配Variant max(...)這樣的函式作出
max(3, 5, 3.14f, 4.0).apply(Println()); // 輸出 int 5
這樣的寫法
但遭遇了一些小問題,我用preprocessor來產生max()和它的help function
請見251行和257行
我想寫成PP_REPEAT_FROM_1_TO(5,MAX_ENUM,PP_SPACE)
但是會出現
In function ‘Variant<T0, T1, T2, T3, T4, T5>& max_helper(Variant<...
error: ‘FUNCTION_ARG’ was not declared in this scope
error: ‘PP_COMMA’ was not declared in this scope
...
這樣的錯誤訊息
我試過把有問題的PP_REPEAT_FROM_1_TO(n,FUNCTION_ARG,PP_COMMA)
包成另一個macro還是不行
請問要怎麼改才能寫成方便的形式?
btw,我有改成用variadic template來寫,簡潔很多
可是Variant最重要的switch case還是只能靠preprocessor產生
真是可惜
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.92.148
→
11/18 15:57, , 1F
11/18 15:57, 1F
→
11/18 17:32, , 2F
11/18 17:32, 2F
推
11/19 05:34, , 3F
11/19 05:34, 3F
→
11/19 05:35, , 4F
11/19 05:35, 4F
→
11/19 05:38, , 5F
11/19 05:38, 5F
→
11/19 05:59, , 6F
11/19 05:59, 6F
→
11/19 19:41, , 7F
11/19 19:41, 7F
→
11/19 20:27, , 8F
11/19 20:27, 8F
→
11/19 20:27, , 9F
11/19 20:27, 9F
→
11/20 19:52, , 10F
11/20 19:52, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章