2014-01-09 16 views
0

如何?如何確定調用者函數,文件和類構造函數的行?

我想:

#define Some(p1, p2) _Some(p1, p2, __FILE__, __func__, __LINE__) 
Some _Some(int p1, int p2, const char* file, const char* func, int line) { ... } 

但:

some.hpp:16:12: error: macro "Some" requires 3 arguments, but only 1 given 
    ~Some(); 
      ^
some.hpp:16:5: error: invalid use of destructor ‘~Some’ as a type 
    ~Some(); 
    ^
+0

你能告訴我們從'0'行到''some.hpp'行'20'的整個代碼嗎? – Shoe

+0

你的宏名稱與別的東西衝突。這就是爲什麼宏名稱傳統上使用SHOUTY_CAPS。 –

回答

0

定義一個完全獨立的類,它的工作是封裝源代碼的位置。 (一個班級,一個責任。)這個班級可以包含函數來格式化您的首選信息。

然後定義一個宏,與一個完全獨特的名字,從__LINE__

建設類然後你Some類的構造函數可以只接受一個單一的參數是源位置,以及呼叫者使用宏每次通話。

相關問題