使用 C++11 的编译时循环:创建普遍化的static_for 实现
- 资源大小:6.81 kB
- 上传时间:2021-06-29
- 下载次数:0次
- 浏览次数:1次
- 资源积分:1积分
-
标 签:
Programming
c++
资 源 简 介
翻译 maninwest@Codeforge 作者 Michael Gazonda@Codeproject这是创建在编译时循环的模板元编程的方法。介绍:最近,我发现了一个有趣的问题:如何在编译时轻松循环?我想写一个 static_for 方法来简化一些 template 代码。但是因为没有需要,就没有写。最近我需要测试一些编译时码,同时需要循环。内建工具不大够用,所以…请看我的static_for!如果你想在编译时循环,这个代码会对你非常有用。如果你对模板元程序设计有兴趣,这个如何做出的方法也会让你感兴趣。要求:支持 C++11 或者以上版本的编译器。解决当前Visual Studio缺乏对使用的 enums 的constexpr 支持的方法,以及更多模板。问题在编译时循环。在运行时循环很容易:for (int i = 0; i < upper_bound; ++i){ do_stuff(i);}由于我们要在编译时工作,解决方案就不这么简单了,我想这么做:template void do_stuff(){ // stuff}for (int i = 0; i < 1000; i++){ do_stuff();}但是,这不管用。i 是运行时计数器, do_stuff() 需要编译时compile-time 计数器。今天,我将带领你体验一下我是如果创建一个普遍化的解决方案的,你也会在此了解我创建这么复杂的东西时遇到的陷阱和推理。相关主题:模板元程序设计标记分配尾部递归模板实例化
文 件 列 表
static_for
.DS_Store
static_for.cpp
static_for.h
static_for.hpp
static_for.vcxproj
static_for.vcxproj.filters
static_for_old.h