看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) g++ 為主 如下 __func__ 可以展開 function 變成字串 想請問有沒有不是字串的版本? 想達到的目的大約是這樣 google 了一下找不太到類似的功能 謝謝 void foo(int) { static int ???#_bar; // foo_bar do_something1(); } void FOO(int,int) { static int ???##_bar; // FOO_bar do_something2(); } -- Time waits for no one. ↑ (。A。)ハァ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.175.53 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443013030.A.B87.html
LPH66: 看不太懂你想做什麼...它是字串會有什麼問題嗎? 09/23 21:37
x000032001: http://goo.gl/XdcWTZ 應該做不到 09/23 21:42
johnjohnlin: 好吧,好像真的不行,謝謝樓上 09/23 22:03
tomnelson: 好像是想搞 Reflection 之類的東東? 09/24 01:29
tomnelson: 問題描述得清楚一點,或許有些東西C/C++還是可以做到的! 09/24 01:30
EdisonX: 有考慮把 func 換成 __FILE__ , __LINE__ , ... 之類的嗎 09/24 03:31
azureblaze: 目的是什麼?每個函數都一個bar不會衝突啊 09/24 08:37
johnjohnlin: 我主要想使用 typedef decltype(___func__)* XXX; 09/25 10:09
johnjohnlin: 當然自己打函數名稱是可以,不過 __func__ 比較方便 09/25 10:11
aimwang: __func__ 是編譯時期的東西,不能用在執行期的用途 09/25 10:52
johnjohnlin: __func__ 是 const char* 吧,我希望能拿到編譯期 09/25 22:40
johnjohnlin: 的純 macro 09/25 22:40
suhorng: 簡單來說就是個 name/token 之類的, 可以拿來接其他東西 09/25 23:03
suhorng: 變一個完整名字這樣吧~ 09/25 23:04
suhorng: 不知道你能不能接受宣告個 macro, 這個 macro 同時做 09/25 23:05
suhorng: 宣告函式跟 typedef 這回事? 09/25 23:06
johnjohnlin: 可是好像沒辦法處理argument list 09/26 23:01
EdisonX: 你說的 argument list 是引數個數就不同嗎? 09/26 23:02
suhorng: variadic macro..? 09/27 22:22