Весьма странно, что для std::fopen() существует C++ аналог в виде класса потока ввода/вывода — std::fstream, а про std::tmpfile(), как будто, забыли.
Для устранения этой несправедливости предлагается использовать значение nullptr в указателе на имя файла (const char * filename) при вызове конструктора для создания объекта класса std::fstream или при выполнение метода open(), что должно быть интерпретировано, как использование объектом класса std::fstream вызова std::tmpfile(), вместо std::fopen(). При этом, переданный аргумент mode можно либо игнорировать, либо требовать точного указания trunc | binary | in | out (на всякий случай, если когда-нибудь понадобиться расширить функционал std::fstream с указанием nullptr в имени файла).
Весьма странно, что для
std::fopen()существует C++ аналог в виде класса потока ввода/вывода —std::fstream, а проstd::tmpfile(), как будто, забыли.Для устранения этой несправедливости предлагается использовать значение
nullptrв указателе на имя файла (const char * filename) при вызове конструктора для создания объекта классаstd::fstreamили при выполнение методаopen(), что должно быть интерпретировано, как использование объектом классаstd::fstreamвызоваstd::tmpfile(), вместоstd::fopen(). При этом, переданный аргументmodeможно либо игнорировать, либо требовать точного указанияtrunc | binary | in | out(на всякий случай, если когда-нибудь понадобиться расширить функционалstd::fstreamс указаниемnullptrв имени файла).