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), и счет должен показывать вам сумму этих двух записей. Почему компилятор разбил строку на две части? В этом я не слишком уверен.
С моей стороны я фактически удалил функцию подсчета веток, чтобы избежать необходимости иметь дело с ней. Это не показалось полезным с большим проектом, как у меня. Возможно, это устранит этот побочный эффект.
Других решений пока нет …