xml*_*lmx 3 c++ syntax standards range c++17
#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));
}
Run Code Online (Sandbox Code Playgroud)
代码使用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
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |