首页 > 解决方案 > C ++ - 声明指向返回任何类型并获取任意数量参数的函数的指针

问题描述

我想知道是否可以编写类似于此声明的任何内容(使用参数包)。

decltype(auto) (*funcPtr)(...);

如果可能的话,我还想知道声明这样一个指针的替代方法。

标签: c++function-pointersparameter-pack

解决方案


C++ 是一种静态类型语言。所有函数参数类型和返回类型必须在编译时已知。您不能声明返回任意类型的函数(好吧,我想您可以return std::any,但我想不出您想要的情况)。

但是,您可以使用模板来创建函数模板,其中编译器将为您删除多个版本的函数,因此您不必自己编写它们。

请记住,autodecltype(auto)不是魔术。如果它们不存在,它们只是您自己编写的语法糖。它们启用该语言中尚不存在的任何新功能。它们只是使这些功能更易于使用。


推荐阅读