2012-10-03 60 views
0

就像標題詢問一樣,C++類模板可以將方法名稱作爲模板參數嗎?C++類模板可以將方法名稱作爲模板參數嗎?

例如,

template <T> 
class Foo 
{ 
public: 
    void T(int bar); 
}; 
+0

No.

+0

我真的無法想到這將是有用的。你有特定的問題,還是這只是假設? – chris

+0

@chris - 不要說它永遠是。這只是我腦海中的一個問題。 – Qix

回答

2

不幸的是,C++核心語言沒有處理任何手段。

一些可能性:

  • 通過預處理手柄名稱,即醜宏。
    注意:Boost參數庫使用了一些未記錄的在這裏非常相關的B​​oost宏觀欺騙。我曾經用過這個作爲general options class的事情。抱歉,我不記得太多,但本質上它支持C++ 03的一種可變宏。
  • 做你自己的自定義預處理,即基於腳本。
  • 不知何故,讓客戶代碼程序員負擔。

對於那些想知道,人們需要這樣做的例子嗎?一個例子是如何使用C++中的Python庫「named tuple」類,其中程序員提供了元組成員的名稱。

相關問題