2012-12-16 22 views
0

C++模板規範我想打一個模板規範,將所有的卡都一樣工作:爲const和普通型

char*, const char*, char* const 

等等

如何做到這一點與C++語法?

謝謝。

+4

你嘗試過什麼嗎? – 0x499602D2

+1

你知道,'const char'和'char'是一樣的,除了你不能改變指針的規範外,對吧?所以在技術上你可以用'char *'創建你的模板,而且你很好。 – ATaylor

+1

@Taylor:爲'char *'提供一個版本將不起作用,因爲'char const *'不會轉換爲'char *'。 –

回答

3

如果您想編寫一個可以與所有三個版本兼容的功能並且執行相同的功能,您並不需要模板。這裏有一個示例程序來演示這個:

void f(const char* const c) 
{ 
} 

int main() 
{ 
    char ch='h'; 
    char*c=&ch; 
    const char*cc="hi"; 
    char* const cc1=&ch; 
    f(c); 
    f(cc); 
    f(cc1); 
} 

它用g ++ 4.7編譯得很好。