Вариант plumbum со временем не очень удачен. Если два временных файла будут создаваться одновременно (например, два пользователя одновременно запустят одну и ту же функцию, работая на терминальном сервере), их имена могут совпасть.
В принципе, конечно, ничего выдумывать не нужно, так как всё уже придумано до нас

Смотрите функции класса WinAPI. Там есть WinAPI::getTempPath() и WinAPI::getTempFilename(). Если нужна какая-то другая директория, пользуйтесь WinAPI::getFolderPath() (необходимые константы есть в макросе WinAPI).