auto&& UTIL_FileRead = [](auto& fname)
{
ifstream in(fname, ios::binary);
string data;
//...
if(!in)
{
//CONSOLE_Print("[UTIL] warning - unable to read file [" + fname + "]");
return data;
}
in.seekg(0, ios::end);
uint32_t FileLength = in.tellg();
in.seekg(0, ios::beg);
data.resize(FileLength);
in.read((char*)data.data(), FileLength);
return data;
};
string m_MapData{ UTIL_FileRead(m_GHost->m_MapPath + m_MapLocalPath) };
if(!m_MapLocalPath.empty() && CFG->GetInt("mcd_allow", 1) == 1)
{
vector<unsigned char> b{m_MapData.begin(), m_MapData.end()};
m_MCD.Parse(b);
m_HasMCD = true;
m_MapData.clear();
m_MapData.shrink_to_fit();
m_MapData.reserve(b.size());
m_MapData.insert(m_MapData.begin(), b.begin(), b.end());
}
string UTIL_FileRead( string file )
char *Buffer = new char[FileLength];
IS.read( Buffer, FileLength );
string BufferString = string( Buffer, IS.gcount( ) );
IS.close( );
delete [] Buffer;
(хотя странно что утечка может быть в vector)
Монтаж всего и вся предполагается на чердаке домасколько метров кабеля придется протянуть? Это тоже потери. Например в дешевом RG58 затухание ~0,5-0,7 дБ/м
https://en.cppreference.com/w/cpp/language/copy_elision
убрал.