Boost 的数据驱动测试的联接运算符"+"损坏了第一列
Boost's data-driven tests' join operator `+` corrupts first column
请考虑以下代码:
BOOST_DATA_TEST_CASE(
sampleTest,
(data::make(1) ^ data::make(2)) + (data::make(3) ^ data::make(4)),
var1,
var2)
{
std::cout << var1 << "," << var2 << std::endl;
}
我期望的输出是:
1,2
3,4
但是,var1
似乎已损坏:
$> ./MyTests --run_test=Tests/sampleTest
Running 2 test cases...
202875304,2
202875304,4
*** No errors detected
$> ./MyTests --run_test=Tests/sampleTest
Running 2 test cases...
83976616,2
83976616,4
*** No errors detected
我做错了什么吗?
这是一个
错误。长话短说:请向库维护者报告。
实际上,zip
运算返回一个元组std::tuple<int const&, int const&>
:
尽管数据集本身当时处于正常活动状态,但元组是在join
操作中通过引用返回的......
sample const& operator*() const { return m_first_size > 0 ? *m_it1 : *m_it2; }
正确的解决方法是将数据集概念扩展为不仅具有::sample
类型¹,而且还具有::reference
类型。这是一个相当具有侵入性的变化。
¹ 奇怪的是目前没有记录
相关文章:
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何在C++中获取二维数组中最少的一列数?
- wxWidgets mac剪贴板在3.1.3上坏了?
- 计时器坏了或者其他什么的
- 如何允许用户选择何时停止三列中的每一列的旋转
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- boost::p rocess::env 在 ubuntu 19.04 上坏了?
- 在犰狳立方体中添加一列 1 的有效方法
- 课堂上的一行,使整个应用程序坏了. 0xC000005错误
- 在二维向量的每一列中查找最大值
- 只有一列适合其内容大小,而另一列则拉伸
- 如何将单独的数组分组在一起(类似于按一列对表进行排序)
- C++ 最后一列中的直方图错误
- 添加两个矩阵会打印一列垃圾数据 c++
- C 特征:通过参考将矩阵的一列传递到函数中
- 仅制作一列qtreewidget可编辑//故障排除
- 在 QTableView 中仅对一列进行排序,而不对其他列进行排序.独立列
- SFML sf::Text::setFillColor 坏了,还是我做错了什么
- 按列对CSV文件进行排序,并与C 中的另一列进行比较
- 找出QTableWidget中选择了哪一列