1
爲什麼下面的print「Generic」而不是「const A &」?我猜測一個dynamic_cast<>
可能會打電話給第一個f
,但事實並非如此。爲什麼是這樣?模板參數扣除不能按預期方式工作
struct A {}; struct B : A {};
template <const A &> void f() { std::cout << "const A &"; }
template <typename T> void f(T) { std::cout << "Generic"; }
int main() {
B b;
f(dynamic_cast<const A &>(b)); // "Generic"
}
謝謝。我仍然有這個問題,但你回答了第一個也是最重要的問題,所以我不會用後續的方法來轟炸你。 –
@typedeftypename,只是發佈一個新的問題。它會得到更多的關注,我相信有人能夠提供幫助。 – hmjd