函數(或部分)的編制提供類如防止基於模板參數
template<typename T = void>
class Foo
{
void Baz()
{
// Do something regardless of specialization
/* Do stuff if the template was specified (i.e. if not void) */
/* This cannot be handled with an if statement because it will not compile if T == void */
}
/* Rest if class */
}
我怎樣才能讓編譯器知道,它不應該編譯如果T == void
功能的一個部分?我最初試着用if
這個陳述來做這件事,但是它不會編譯,因爲那段代碼使用<<
運算符和一個T
類型的變量(如果T == void
顯然是錯誤的)。
謝謝:)我只是意識到我傳遞了函數'Baz'兩個參數(都是'unsigned int')。我如何在您提供的示例中包含這些內容?我試圖只是看到,如果把它們放在參數列表的開始/結尾工作,但我錯了 – Kvothe