gpt4 book ai didi

c++ - 指向具有可变参数列表的函数的函数指针

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:52 25 4
gpt4 key购买 nike

我们可以有一个函数指针指向一个使用可变参数列表的函数吗?例如,假设我需要根据一些输入 T“输入”从多个函数中选择一个函数。我可以使用像这样的 STL map 吗??

template<typename T>
map<T, T (*)(T, ...)> func_map;

如果这是可能的,你能告诉我这样做是正确的设计观点吗。


[编辑]实际上我有一组算法函数,我有一个消息字段。我需要根据此消息上的几个字节值来选择此算法函数。我正在考虑将 hash_map 与键值 w.r.t. 一起使用。指向该算法函数的指针。我想根据性能非常快,什么是最好的实现方式。

此外,我之所以没有为此选择简单的 if-else 或 switch block ,是因为告诉我们需要执行的函数的值可以在稍后引用其他函数。

最佳答案

是的,可以这样做,但您可能不应该这样做。可变参数函数存在许多问题,包括:

  • 传递的所有类型必须是 POD 类型,否则行为未定义
  • 没有任何类型安全。如果传递错误的类型,将导致未定义的行为。

我建议您寻找另一种方法。如果您更具体地说明为什么需要这样做,也许有人可以为您提供更好的选择。

关于c++ - 指向具有可变参数列表的函数的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com