this constructor feels like it should be in the header...

Here's why, no business logic.

I still feel like it's better to have simple constructors that are just initializing members as inline. Not because the compiler will (sometimes) optimized, but because it makes a clear statement that there is no business logic here... it's just initialization.