gpt4 book ai didi

c++ - 函数调用如何给出编译时类型?

转载 作者:太空狗 更新时间:2023-10-29 19:51:25 25 4
gpt4 key购买 nike

#include <range/v3/all.hpp>

using namespace ranges;

template<typename I, typename O>
tagged_pair<tag::in(I), tag::out(O)>
f(I i, O o)
{
return { i, o };
}

int main()
{
char buf[8]{};
f(std::begin(buf), std::end(buf));
}

代码使用range-v3可以用 clang 编译.

但是,我无法理解为什么 tagged_pair<tag::in(I), tag::out(O)> 这行是合法的。 I是一种类型,tag::in(I)也是一种类型,tag::in不是宏,如何tag::in(I)在编译时给出一个类型?

另见 http://en.cppreference.com/w/cpp/experimental/ranges/algorithm/copy

最佳答案

它是一种接受I的函数并返回 tag::in , 这也是一种类型。

这用于,例如 std::function , 比如 std::function<void(int)> .

关于c++ - 函数调用如何给出编译时类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44482513/

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