我有一個關於在C++元編程中扣除類型的小問題。 有一定的功能做一些動作。爲什麼類型扣除不能按預期工作?
的main.cpp
template<typename T> void foo(T arg) {
// do some action on argument
std::cout << typeid(arg).name() << std::endl;
}
int main(int argc, char** argv) {
int array[100] = {0};
std::cout << typeid(array).name() << std::endl;
foo(array);
return 0;
}
輸出:
A100_i
Pi
爲什麼ARG在功能FOO()具有在功能主(大於陣列一個另一種數據類型) ?
我會說:錯誤的期望。可能很好的谷歌關鍵字:數組指針衰減。 – PlasmaHH 2013-02-26 09:45:01
數以百計的問題已經發布到SO基礎上,由於數組衰減指針,通常涉及'sizeof'的誤解,但這是一種新穎的方法。 :-) – 2013-02-26 09:48:53
您對標題添加CLOSED意味着什麼? – 2013-02-27 14:28:01