gpt4 book ai didi

c++ - 使用命名空间和 header

转载 作者:行者123 更新时间:2023-11-28 07:39:01 25 4
gpt4 key购买 nike

我正在做一个项目,我在头文件中编写了几乎所有的测试代码。我这样做主要是因为我在做测试驱动开发,这导致我添加的每个类都有大量补充类:接口(interface)、测试、模拟等。我想如果我还必须处理,我会发疯的使用所有这些文件的 cpp 版本...

我没有在标题的开头添加“using namespace std”,因为我知道这是一个不,不。无论如何,假设我目前在测试开始时初始化我的 Blob 对象,如下所示:

Blob v =
boost::assign::list_of(std::pair<std::string, Container >("Scotland",Container(boost::assign::list_of(1)(2)(3).convert_to_container<std::vector<int> >())))
(std::pair<std::string, Container >("Sweden",Container()));

Blob 是 typedef在某处编辑为 std::vector<std::pair<std::string, Container > > .

我怎样才能让它更漂亮?我使用 list_of 的原因是为了让事情更具可读性,但在这种情况下,我认为它使它更难阅读。这样好多了:

Blob v =
list_of(pair<string, Container >("Scotland",Container(list_of(1)(2)(3).convert_to_container<vector<int> >())))
(pair<string, Container >("Sweden",Container()));

但我不能在标题中这样做...

我该怎么做才能解决这个问题?我正在使用 C++98。

更新:

只是一个想法。如果我将所有测试 header 重命名为 cpp 文件怎么办?

最佳答案

TDD 需要较短的编辑->编译->运行周期。因此,您应该在 cpp 文件中编写尽可能多的代码以减少编译时间。不过,您可以使用 init 函数解决您的问题:

inline Blob InitBlob()
{
using namespace boost;
using namespace std;
return assign::list_of(/*...*/);
}

Blob v = InitBlob();

关于c++ - 使用命名空间和 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com