gpt4 book ai didi

c++ - C++0x 中的纯/常量函数

转载 作者:可可西里 更新时间:2023-11-01 15:52:53 26 4
gpt4 key购买 nike

在C++98/C++03中,没有pure/const function keywords在语言中。

  1. 这在 C++0x 中有变化吗?

  2. 如果是这样,是否可以在函数对象 (std::function) 上设置这样的标志?所以我可以传递一些函数指针或 lambda 函数,并额外提供它是一个纯/const 函数的信息?被调用函数可能具有针对此类函数的优化执行路径。

  3. 有什么方法可以检查给定的函数是否是纯函数/常量? IE。例如,如果如上所述 std::function 上有这样的标志,我可能只检查该标志。但也许还有更通用的方法。

如果没有改变,为什么不呢?我认为获得这样的支持可能会非常有用。

有没有关于它的公开提案?

最佳答案

  1. Has this changed in C++0x?

没有。有一个 constexpr 但它表示编译时间常量。如果它的参数也是 constexprs 那么它会在编译时执行,否则它就是一个常规函数。由于它们必须在同一个翻译单元中定义并且由单个返回语句组成,因此它们可能会被内联并执行上述优化。它不能用于提供有关外部链接函数的编译器信息。

If it has not changed, why not? I think it might be quite useful to have such a support.

其实我觉得你不需要它。语言已经太大了,程序员无论如何都可以根据自己的知识轻松重写这段代码以提高效率。与 restrict 不同,它不提供任何无法通过其他方式表达的信息。

Are there any open proposals about it?

我还没有看到关于该主题的任何委员会文件。

关于c++ - C++0x 中的纯/常量函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799891/

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