2013-04-29 135 views
1

我遇到了一些麻煩擴大到基值升壓預處理器庫

# include <boost/preprocessor/cat.hpp> 

#define REL_ITERATION_1 1 
#define REL_FRAME_ITERATION(i) BOOST_PP_CAT(REL_ITERATION_, i) 
#define REL_ITERATION_PARAMS_2 REL_FRAME_ITERATION(1) 
#define REL_FRAME1(i)   BOOST_PP_CAT(REL_ITERATION_PARAMS_, i) 
#define REL_FRAME2(i)   REL_ITERATION_PARAMS_##i 
REL_FRAME1(2) 
REL_FRAME2(2) 

這裏的輸出。

BOOST_PP_CAT(REL_ITERATION_, 1) 
1 

有沒有人有任何想法,爲什麼第一個電話是不一樣的第二個?我以爲我有處理使用預處理器,但我只是不明白這一點。 :(

+0

如何接受它?噢,點擊勾號,表示我可以在幾天內接受它 – Adrian 2013-04-30 07:41:20

+0

答案左側有一個綠色的勾號,點擊它也可以查看http:// stackoverflow.com/faq – pmr 2013-04-30 09:57:19

+0

是的,它不是綠色的,當你點擊它時會變綠,但由於某種原因,它不會讓我明天到明天。 – Adrian 2013-04-30 12:10:44

回答

0

沒關係。我錯過了文檔中的一部分,它說如果它擴展到BOOST_PP_CAT()宏,它不會展開。

衛生署!