C++ Range - for_each1: RANGES_INLINE_VARIABLE

本文介绍了C++中的range概念,重点解析了ranges::for_each函数及其背后的RANGES_INLINE_VARIABLE宏。通过示例代码展示了如何使用ranges::for_each遍历并输出元素,同时详细解释了C17之前和之后RANGES_INLINE_VARIABLE的不同实现方式,探讨了inline变量对库开发者的好处。

前言

追求simpler,cleaner,more expressive的C++在range表达被引入标准库之后,肯定会被大规模被使用。这里先来体验一下range的优美。
这边分析的代码都来之:https://github.com/ericniebler/range-v3.

ranges::for_each

#include <iostream>
#include <range/v3/all.hpp> // get everything
#include <string>
using std::cout;

int
main()
{
    std::string s{"hello"};

    // output: h e l l o
    ranges::for_each(s, [](char c) { cout << c << ' '; });
    cout << '\n';
}

输出:h e l l o

for_each

下面是for_each的代码,我们一部分一部分来分析:
include\range\v3\algorithm\for_each.hpp

    struct for_each_fn
    {
        template<typename I, typename S, typename F, typename P = identity>
        auto operator()(I begin, S end, F fun, P proj = P{}) cons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值