[問題] 可以生成不是字串的 __func__ 嗎?

看板C_and_CPP (C/C++)作者時間10年前 (2015/09/23 20:57), 編輯推噓3(3016)
留言19則, 8人參與, 最新討論串1/1
開發平台(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

09/23 21:37, , 1F
看不太懂你想做什麼...它是字串會有什麼問題嗎?
09/23 21:37, 1F

09/23 21:42, , 2F
http://goo.gl/XdcWTZ 應該做不到
09/23 21:42, 2F

09/23 22:03, , 3F
好吧,好像真的不行,謝謝樓上
09/23 22:03, 3F

09/24 01:29, , 4F
好像是想搞 Reflection 之類的東東?
09/24 01:29, 4F

09/24 01:30, , 5F
問題描述得清楚一點,或許有些東西C/C++還是可以做到的!
09/24 01:30, 5F

09/24 03:31, , 6F
有考慮把 func 換成 __FILE__ , __LINE__ , ... 之類的嗎
09/24 03:31, 6F

09/24 08:37, , 7F
目的是什麼?每個函數都一個bar不會衝突啊
09/24 08:37, 7F

09/25 10:09, , 8F
我主要想使用 typedef decltype(___func__)* XXX;
09/25 10:09, 8F

09/25 10:11, , 9F
當然自己打函數名稱是可以,不過 __func__ 比較方便
09/25 10:11, 9F

09/25 10:52, , 10F
__func__ 是編譯時期的東西,不能用在執行期的用途
09/25 10:52, 10F

09/25 22:40, , 11F
__func__ 是 const char* 吧,我希望能拿到編譯期
09/25 22:40, 11F

09/25 22:40, , 12F
的純 macro
09/25 22:40, 12F

09/25 23:03, , 13F
簡單來說就是個 name/token 之類的, 可以拿來接其他東西
09/25 23:03, 13F

09/25 23:04, , 14F
變一個完整名字這樣吧~
09/25 23:04, 14F

09/25 23:05, , 15F
不知道你能不能接受宣告個 macro, 這個 macro 同時做
09/25 23:05, 15F

09/25 23:06, , 16F
宣告函式跟 typedef 這回事?
09/25 23:06, 16F

09/26 23:01, , 17F
可是好像沒辦法處理argument list
09/26 23:01, 17F

09/26 23:02, , 18F
你說的 argument list 是引數個數就不同嗎?
09/26 23:02, 18F

09/27 22:22, , 19F
variadic macro..?
09/27 22:22, 19F
文章代碼(AID): #1M0g6ck7 (C_and_CPP)
文章代碼(AID): #1M0g6ck7 (C_and_CPP)