Собрал tests/base.
Студия 2015: 77 предупреждений
mingw (g++ 5.1): 356 предупреждений
clang 3.9: 345 предупреждений
глянул исходники:
template<typename Archive>
static Archive& save(Archive& ar, const std::string& string) {
ar.write((std::uint32_t)string.length());
ar.write(&string[0], string.length());
return ar;
}
template<typename Archive>
static Archive& load(Archive& ar, std::string& string) {
std::uint32_t size = 0;
ar.read(size);
string.resize(size);
ar.read(&string[0], size);
return ar;
}
1) большие (а в наше время не особо большие) данные молча криво обрабатываются?
2) &string[0] — это реально стремно
3) надлежащие инклюды для std::uint32_t и других простых стандартных типов отсутствуют
4) С-style cast
ЗЫ не стоит прописывать в решениях полные пути типа D:\msys\home\niXman\
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.