Normally I would just use C style file IO, but I'm trying a modern C++ approach, including using the C++17 specific features std::byte and std::filesystem.
Reading an entire file into memory, traditional method:
#include <stdio.h>
#include <stdlib.h>
char *readFileData(char *path)
{
    FILE *f;
    struct stat fs;
    char *buf;
    stat(path, &fs);
    buf = (char *)malloc(fs.st_size);
    f = fopen(path, "rb");
    fread(buf, fs.st_size, 1, f);
    fclose(f);
    return buf;
}
Reading an entire file into memory, modern approach:
#include <filesystem>
#include <fstream>
#include <string>
using namespace std;
using namespace std::filesystem;
auto readFileData(string path)
{
    auto fileSize = file_size(path);
    auto buf = make_unique<byte[]>(fileSize);
    basic_ifstream<byte> ifs(path, ios::binary);
    ifs.read(buf.get(), fileSize);
    return buf;
}
Does this look about right? Can this be improved?
 
    