在我寫的構造函數模板中,我希望在類模板的接口上有一個靜態斷言。情況基本(非編譯)示例如下:類模板接口的靜態斷言
class Baz
{
}
template<typename T>
class Bar: public Baz
{
}
template<typename T>
class Qux: public Baz
{
}
class Foo
{
template<typename T>
Foo(T typePar , Baz& baz)
{
// here I would like to assert that Baz is an interface to a class
specialized on T
}
}
我最好的猜測是一個函數來巴茲的增加,但因爲這不能作爲模板,我不會現在我怎麼能調用,在編譯時間。
你的意思是你想在編譯時檢查'Baz'實際上是對'Bar'或'Qux '的引用嗎?這是不能做到的,因爲動態類型的'baz'在運行時可能是不同的東西。 –
TartanLlama
您可以將'Baz&'更改爲模板參數,然後執行檢查,但是您無法將'Baz'傳遞給您的構造函數,您需要首先進行投射。 – TartanLlama
我明白你的意思了。將它改爲模板參數對我來說不是一個真正的選擇。於是我只想放棄這個靜態斷言 – laurisvr