Объявление константы const rule<it, test()> parseTest;
также является ее определением, которое в этом коде использует конструктор по умолчанию для его инициализации.Просто пропустите эту строку.
В качестве альтернативы, если вы хотите предоставить parseTest
определение инициализатору в другом исходном файле, вы должны объявить, что const
как extern
, поскольку const
в глобальной области и области именподразумевает внутреннюю связь (static
).
// .h
namespace parsers {
extern const rule<it, test()> parseTest;
}
// .cc
const rule<it, test()> parsers::parseTest = int_ >> ',' >> int_;