gpt4 book ai didi

c++ - 这个奇怪的函数参数是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:39 25 4
gpt4 key购买 nike

今天我遇到了这个奇怪的代码:

auto rovoid_iterator
(
Construct ROII* const at,
auto(ROII&)(auto(*)(Str&&)noexcept->void) ->void //WTF??
) -> void;

这个奇怪的第二个参数是什么鬼??

提前致谢!

最佳答案

好吧,让我们解构这个可憎的东西。

首先,有一个内部类型:

auto(*)(Str&&) noexcept -> void

这是一个指向以 Str 右值引用作为参数的函数的指针。它也是一个 noexcept 函数。

让我们称之为S

using S = auto(*)(Str&&) noexcept -> void;

然后参数的外部可以这样替换:

auto(ROII&)(S) -> void

正如您在评论中所述,ROII 是一个空宏。所以最后它是这样写的:

auto(&)(S) -> void

该代码似乎是一个参数,它是对接受 S 并返回 void 的函数的引用。

关于c++ - 这个奇怪的函数参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482712/

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