// Function to save a vector of DataArray to a binary file
void saveDataToFile(const std::vector<KlineDataArray>& data, const std::string& filePath)
{
std::ofstream outFile(filePath, std::ios::binary);
if (!outFile.is_open())
{
std::cerr << "Failed to open file for writing: " << filePath << '\n';
return;
}
size_t dataSize{ data.size() };
outFile.write(reinterpret_cast<const char*>(&dataSize), sizeof(size_t));
outFile.write(reinterpret_cast<const char*>(data.data()), dataSize * sizeof(DataArray));
//uint64_t dataSize = static_cast<uint64_t>(data.size());
//outFile.write(reinterpret_cast<const char*>(&dataSize), sizeof(uint64_t));
//outFile.write(reinterpret_cast<const char*>(data.data()), dataSize * sizeof(DataArray));
}
for some reason it still compiles / acts as a 32 bit instead of 64 bit. I do g++ -O3 -std=c++23 -m64 -o env environment.cpp and i have checked g++ -v
which ouptus:
Using built-in specs.
COLLECT_GCC=C:\msys64\ucrt64\bin\g++.exe
COLLECT_LTO_WRAPPER=C:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-13.2.0/configure --prefix=/ucrt64 (and so on)