10 [ + - ][ + - ] : 2 : Conf::~Conf() {}
11 : :
12 : :
13 : 2 : Conf::Conf( std::string filename, std::string delimiter,
14 : : std::string comment )
15 [ + - ][ + - ]: 2 :: m_Delimiter(delimiter), m_Comment(comment)
16 : : {
17 : : // Construct a Conf, getting keys and values from given file
18 : :
19 [ + - ][ + - ]: 4 : std::ifstream in( filename.c_str() );
[ + - ]
20 : :
21 [ + - ][ - + ]: 2 : if( !in ) throw File_not_found( filename );
[ # # ]
22 : :
23 [ + - ]: 2 : in >> (*this);
24 : 2 : }
代码覆盖率报告如上。对于 Conf 类,构造函数的命中数是 2,但是 std::ifstream in( filename.c_str() ); 这行代码的命中数是 4,我认为也应该是 2。
您如何看待此代码覆盖率报告中的不同点击数,这是一个错误吗
lcov
还是有意义?
最佳答案
看起来他们正在计算两项(第 19 行有两行带方括号),并且计数必须显示这两项的总和。为什么编译器将行分成两部分?我不太确定。
就我而言,我实际上删除了分支计数功能以避免处理它。对于像我这样的大型项目来说,它似乎没有用。也许这样做可以消除这种副作用。
关于c++ - 这是 lcov 的错误还是对一个函数中的不同命中计数有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14050831/