![]() |
От: | VTT | http://vtt.to |
Дата: | 18.09.16 07:46 | ||
Оценка: |
лог clangg++ -s -o yas_test.exe -std=c++14 -O3 -g0 -fno-rtti -fomit-frame-pointer -fstrict-enums -fshort-wchar -fstrict-aliasing -fvisibility=hidden -fmessage-length=0 -Wall -Wextra -Wconversion -Wold-style-cast -Wpedantic -Wno-unknown-pragmas -I"../../include" -DRELEASE -DNDEBUG main.cpp -Wl,--subsystem,windows -shared-libstdc++ -shared-libgcc
"C:\Program Files\LLVM\bin\clang.exe" -o yas.cl.exe -std=c++14 -O3 -g0 -fms-compatibility-version=19 -fcxx-exceptions -fomit-frame-pointer -fstrict-enums -fshort-wchar -fvisibility=hidden -fmessage-length=0 -Wall -Wextra -Wconversion -Wpedantic -Wold-style-cast -Wno-unknown-pragmas -DRELEASE -DNDEBUG -I"../../include" main.cpp
ar.write((std::uint32_t)string.length());// допустим длина 4Гб 16 Б, верхние байты будут отброшены, длина будет записана 16 Б
ar.write(&string[0], string.length()); // а тут запишутся все 4Гб 16 Б, при чтении из них будет прочитано только 16 Б, а остальные интерпретированы как продолжение архива
if(!string.empty())
{
ar.write(string.data(), string.size());
}
string.resize(size);
if(!string.empty())
{
ar.read(string.data(), size);
}