Тема: Альтернатива reinterpret_cast для колбека GLFW

Є клас, де прописана ініціалізація вікна за допомогою менеджера вікон GLFW, ось так:

void GenGLFWWindow::init_glfw_window()
{
    glfwInit();

    glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
    glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);

    glfw_window = glfwCreateWindow(width, height, window_name.c_str(), nullptr,
                                   nullptr);

    glfwSetWindowUserPointer(glfw_window, this);
    glfwSetFramebufferSizeCallback(glfw_window, framebuffer_resize_callback);
}

А ще є статичний метод класу для відповідного колбека:

void GenGLFWWindow::framebuffer_resize_callback(GLFWwindow* window, int width,
                                                int height)
{
    auto app
        = reinterpret_cast<GenGLFWWindow*>(glfwGetWindowUserPointer(window));
    app->framebuffer_resized = true;
}

Я розумію, що GLFW написана на С, але чи можна в цьому випадку замінити
reinterpret_cast на більш безпечну альтернативу? Чи тут це необхідне зло?
Цей приклад з офіційного посібника Vulkan, я лише розбив його на класи для зручності.