m_Buffer.open(m_Path, m_Mode);
else m_Buffer.reserve(m_SZ);
Если передаю в качестве шаблонного параметра
std::basic_fstream<char>, то ругается что нет reserve(), а если контейнер, например std::vector<char>, то ругается что нет open().
Можно ли что-то с этим сделать? Или писать отдельные методы?
if должен быть constexpr (как и is_file), но я бы подумал ещё раз над интерфейсом.
Пытался придумать, что же такое ты замыслил, и не смог. Может пояcнишь свои мысли?
Подумаю над интерфейсом, по совету выше.
По тому, что ты написал, ты делаешь что-то странное, типа скрещивания бульдога с носорогом - если получится, то получишь жуткую химеру.
Хотел, чтобы была возможность выбора буфера. Файловый или в виде контейнера
Но это же совсем не буффер std::basic_fstream<char> ни в каком из вариаций.
Такая ситуация обрабатывается в шаблонах путём специализации шаблонов. И это весьма непростая тема для начинающих.
https://gitlab.jsc.fz-juelich.de/sdlbio-courses/hpcxx/-/raw/main/day2/hpcxx2023_day2.pdf?ref_type=heads ищи Choosing algorithm based on API , а также https://github.com/PeterTh/uibk_cpp/blob/master/06_advanced_templates.pdf?ysclid=lm5zcdfey1576952576
Норм презентация, но, конечно, механизм плохо объясняется
Обсуждают сегодня