Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我不明白模板参数之间的区别
template <class T> class C { T t; }; void foo() { C<void ()> c1; //isn't compiled C<void (*)()> c2; }
void() 是什么类型?这种类型用于 boost::function..
void()是一个函数类型。void(*)()是指针类型。在 C++ 中,你不能有函数类型的变量,所以当isT t;时不编译。Tvoid()
void()
void(*)()
T t;
T
经过
C<void ()> c1; C<void (*)()> c2;
编译器期望您将指针传递给函数签名。第一个不是指针。
第一个 void() 是一个函数,而第二个 void(*)() 是一个指向函数的指针。