c++11相关内容

是否有任何 C++ 语言障碍阻止采用 D 范围?

这是一个 C++/D 交叉问题.D 编程语言 有 范围 - 与 C++ 库如 Boost.Range- 不基于迭代器对.官方的 C++ Ranges Study Group 似乎陷入了制定技术规范的困境. 问题:当前的 C++11 或即将推出的 C++14 标准是否存在阻碍采用 D 范围的任何障碍 - 以及 ..
发布时间:2022-01-24 20:11:38 C/C++开发

循环范围内的初始化列表

我有从单个超类型派生的不同类型的对象.我想知道在这样的循环范围内使用 std::initializer 列表是否有任何缺点: for(auto object: std::initializer_list{object1, object2, object3}) {} 是否完全可以且高效,还是使用数组更好?对我来说,std::array 解决方案似乎对编译器的限制更大,并且显式 ..
发布时间:2022-01-24 20:08:27 C/C++开发

C++1z 的范围状态?

C++ 委员会中有一个范围研究小组: 但我没有关注这个研究组的历史,我不确定 C++1z 的预期交付类型(此外我不使用 boost.range,因此我对现有的实践).我们会有: 将范围作为一对第一个/最后一个迭代器? 范围上的联合和其他集合操作(​​例如 [v.begin()+5, v.begin()+7[ U [v.begin()+10, v.begin()+15[ U[v.b ..
发布时间:2022-01-24 19:49:45 C/C++开发

C++ 中范围的状态是什么?

有时我厌倦了所有这些 my_vector.begin(), my_vector.end() 噪音.去年在 boostcon 上,Andrei Alexandrescu 的主题演讲标题为 迭代器必须去(视频) 在 C++ 中引入范围有什么进展,所以我终于可以说 std::sort(my_vector) 了吗? 解决方案 Range in C++ 还是体验不足. 作为目前的实验实现,有 ..
发布时间:2022-01-24 19:49:25 C/C++开发

在 C++11 中声明接口的最佳方法

众所周知,有些语言有接口的概念.这是Java: 公共接口可测试{无效测试();} 如何在 C++(或 C++11)中以最紧凑的方式实现这一点,并且代码噪音很小?我很欣赏不需要单独定义的解决方案(让标题就足够了).这是一种非常简单的方法,即使我也觉得有问题 ;-) 类可测试{上市:虚拟无效测试()= 0;受保护:可测试();可测试(const Testable& that);可测试&opera ..
发布时间:2022-01-24 16:28:57 C/C++开发

C++11 和缺少多态 lambda - 为什么?

我一直在审查 C++11 的草稿版本标准.特别是关于 lambdas 的部分,我对不引入多态 lambdas 的原因感到困惑. 例如,在可以使用多态 lambda 的 100001 种方式中,我曾希望我们可以使用如下代码: templatevoid foo(容器 c){for_each(c.begin(), c.end(), [](T& t) { ++t; });} 原因是什么: ..
发布时间:2022-01-24 16:11:26 C/C++开发

如何迭代 std::tuple 的元素?

如何迭代元组(使用 C++11)?我尝试了以下方法: for(int i=0; i::value; ++i)std::get(my_tuple).do_sth(); 但这不起作用: 错误 1:抱歉,未实现:无法将“Listener ..."扩展为固定长度的参数列表. 错误 2:i 不能出现在常量表达式中. 那么,如何正确迭代元组的元素? 解决方案 Boost.Fus ..
发布时间:2022-01-24 11:18:58 C/C++开发

使用 decltype 将其强制转换为 const

我正在尝试解决一个问题,其中 decltype 将大大简化事情,但我在 *thisdecltype 时遇到了问题/code> 并添加 const 限定符.下面的示例代码演示了这个问题. #include 结构 Foo{空栏(){static_cast(*this).bar();}无效栏()常量{std::cout ..
发布时间:2022-01-24 00:03:01 C/C++开发

为什么 const 方法不能返回非常量引用?

为什么下面的方法 getRanks() 编译不出来,我该如何优雅地修复它? 我想要做的就是定义一个返回成员引用的成员访问器方法.引用不是 const 因为我以后可能会修改它所引用的内容.但是由于成员方法不修改对象,所以我将它声明为const.编译器(clang,std=c++11)然后坚持认为存在“删除限定符"的“引用绑定".但我不会放弃预选赛,是吗?如果我是,为什么: struct te ..
发布时间:2022-01-24 00:02:25 C/C++开发