это ошибка в lcov или значимая разница в количестве обращений в одной функции?

 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 или значимый?

0

Решение

Похоже, что они рассчитывают две вещи (есть две строки с квадратными скобками для строки 19), и счет должен показывать вам сумму этих двух записей. Почему компилятор разбил строку на две части? В этом я не слишком уверен.

С моей стороны я фактически удалил функцию подсчета веток, чтобы избежать необходимости иметь дело с ней. Это не показалось полезным с большим проектом, как у меня. Возможно, это устранит этот побочный эффект.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]