Remix.run Logo
skobes 9 hours ago

Why is the whole implementation in header files?

csmantle 9 hours ago | parent | next [-]

Header-only libs can help avoiding the troubles and complexity of linker setup. This might be even more important on Windows, which this lib "explicitly support".

socalgal2 8 hours ago | parent | prev [-]

short answer, because C/C++ sucks. To work around how bad C/C++ sucks people put the entire implementation into one file. That way, there's less question of how you need to integrate it into your project.

In more modern langauges, this is a solved problem and it's easy to use other people code. In C/C++, it's not. As a relavant example, try using FreeType in your C/C++ project, make sure your solution compiles on Linxu, and Mac, and Windows (and ideally other platforms)

thegrim000 3 hours ago | parent [-]

>> As a relavant example, try using FreeType in your C/C++ project, make sure your solution compiles on Linxu, and Mac, and Windows (and ideally other platforms)

find_package(Freetype REQUIRED)

target_link_libraries(myproject PRIVATE Freetype::Freetype)