假设我有这样一门课:
struct MyStruct
{
template<typename T>
static int Func()
{
// Do something with the template parameter.
}
};现在假设我想用Func的prototype创建指向函数的指针向量。由于原型不依赖于模板参数,所以应该是可能的。而且,果然,我可以显式地typedef一个指向Func的指针,如下所示:
typedef int (* FuncPtr)(MyStruct * pointer);然后,创建向量就像:
std::vector<FuncPtr> FuncVector;但是,我想避免两次声明Func的原型。这样做有可能吗?
发布于 2015-08-16 21:13:43
使用decltype
std::vector<decltype(&MyStruct::Func<void>)> FuncVector;发布于 2015-08-16 21:10:43
与typedef for FuncPtr不同,您可以这样做:
using FuncPtr = decltype(&MyStruct::Func<int>);https://stackoverflow.com/questions/32039963
复制相似问题