gpt4 book ai didi

c++ - 在 C++ 中组合前缀 &* 操作

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:04 25 4
gpt4 key购买 nike

在对 How to pass an initializer list as a function argument? 的回答中,我看到了表达式:

return WaitForMultipleObjects(
handles.size(), &*handles.begin(), wait_all, time
);

&* 有什么意义?如果没有它,调用是否具有相同的含义?

最佳答案

  • 一般来说,container.begin()返回一个迭代器
  • 一般来说,&*container.begin()返回一个指针
  • WaitForMultipleObjects期望一个 HANDLE const*

对于 std::initializer_list<>特别是,迭代器被定义为一个指针;但是 A) 这不能推广到其他容器类型,并且 B) 标准库实现通常在调试构建中使用检查迭代器,这必然是 UDT。

对于您链接到的特定答案,&* 不需要 因为它专门使用 std::initializer_list<> ;然而,如果wait_for_multiple_objects取而代之的是 std::array<>std::vector<> ,或者如果它被做成一个可以接受任何随机访问容器的函数模板,它确实是必要的。

关于c++ - 在 C++ 中组合前缀 &* 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34986249/

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