小编Jan*_*erg的帖子

std::forward_as__tuple 的用例

Cppreference 给出std::forward_as_tuple了以下示例(请参见此处

#include <iostream>
#include <map>
#include <tuple>
#include <string>

int main()
{
     std::map<int, std::string> m;

     m.emplace(std::piecewise_construct,
               std::forward_as_tuple(10),
               std::forward_as_tuple(20, 'a'));
     std::cout << "m[10] = " << m[10] << '\n';

     // The following is an error: it produces a
     // std::tuple<int&&, char&&> holding two dangling references.
     //
     // auto t = std::forward_as_tuple(20, 'a');
     // m.emplace(std::piecewise_construct, std::forward_as_tuple(10), t);
}
Run Code Online (Sandbox Code Playgroud)

简单写有什么好处

 m.emplace(std::make_pair(20,std::string(20,'a')));
Run Code Online (Sandbox Code Playgroud)

c++ stdmap std c++11

4
推荐指数
1
解决办法
211
查看次数

GTest,仅参数化测试用例

我想应用参数化测试并具有以下固定装置:

class MyTest: public ::testing::TestWithParam<float> {...};
Run Code Online (Sandbox Code Playgroud)

我想设置两个参数化测试用例,其中一个小参数失败,但较大参数成功。

TEST_P(MyTest, smallParamsFail)
{
    auto param = GetParam();
    EXPECT_EQ(true, param<1);
}


TEST_P(MyTest, largeParamsSucceed)
{
    auto param = GetParam();
    EXPECT_EQ(true, param>1);
}
Run Code Online (Sandbox Code Playgroud)

我现在想以较小的值开始测试用例smallParamsFail,以较大的值开始另一个测试用例。不幸的是,我只能像这样参数化整个测试:

INSTANTIATE_TEST_CASE_P(
    testLargeParams,
    MyTest,
    ::testing::Values(2.0f, 3.14f));
Run Code Online (Sandbox Code Playgroud)

这将执行两个测试用例,并且在 SmallParamsFail 的情况下显然会崩溃。我需要的是仅在测试用例 largeParamsSucceed 上使用参数 2.0f、3.14f 的 MyTest 实例化。然后使用适当的参数以相同的方式启动其他情况。

c++ googletest

3
推荐指数
1
解决办法
4091
查看次数

R生成带有空格的标签

我尝试使用上标生成标签,因此使用parse。我似乎不能使用空格,这有效:

GTVol <- 1:10
measuredVol <- 1:10
dat <- data.frame(GTVol, measuredVol)
ggplot(dat, aes(GTVol, measuredVol)) + 
  geom_point() + 
  geom_abline(slope=1) +
  xlab(parse(text='HarvestedVolume(m^3)')) + 
  ylab("QSM Volume (m^3)")
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

GTVol <- 1:10
measuredVol <- 1:10
dat <- data.frame(GTVol, measuredVol)
ggplot(dat, aes(GTVol, measuredVol)) + 
  geom_point() + 
  geom_abline(slope=1) +
  xlab(parse(text='Harvested Volume (m^3)')) + 
  ylab("QSM Volume (m^3)")
Run Code Online (Sandbox Code Playgroud)

给我以下错误:

Error in parse(text = "Harvested Volume (m^3)") : 
  <text>:1:11: unexpected symbol
1: Harvested Volume
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
2
解决办法
31
查看次数

标签 统计

c++ ×2

c++11 ×1

googletest ×1

r ×1

std ×1

stdmap ×1