Информация об изменениях

Сообщение Re[2]: YAS: Yet Another Serialization от 17.09.2016 23:30

Изменено 17.09.2016 23:48 VTT

Собрал tests/base.
Студия 2015: 78 предупреждений
mingw (g++ 5.1): 356 предупреждений

глянул исходники:
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\
Re[2]: YAS: Yet Another Serialization
Собрал 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\