C++被認爲是靜態類型的。我明白那個。模板:靜態類型還是動態?
我不明白這是如何適用於模板。
這裏是不能在編譯時確定一個類型的一個簡單的例子:
template <typename... t>
struct foo {
using type = typename foo<t..., t...>::type;
};
foo<int>::type x; // type of x cannot be determined without running meta-program
我相信存在這樣的情況是不可能的檢測類型錯誤不解決停機問題。
所以我的問題是,爲什麼不考慮動態類型的模板?
有沒有元程序運行,只是一些類型實例,所有發生在C++程序的**編譯時**。 – Xeo 2012-01-02 03:01:59
@Xeo它不能實例化任何東西,因爲它不能確定類型 – Pubby 2012-01-02 03:03:49
我假設編譯器仍然會在編譯時間中試圖找出這種類型。任何證明違背這一假設? – 2012-01-02 03:04:20