add_const or remove_const based on another type
I don't see any obvious omissions or bugs.

The naming and inner struct are neatly expressive (and remind me of some testing frameworks' precondition/assertion chaining).  It's not something that's done by the standard library, but I don't think it should be hugely controversial.

I might go with a naming like copy_const&lt;foo&gt;::from&lt;bar&gt; - or perhaps even the other way around: copy_const&lt;bar&gt;::to&lt;foo&gt;.  Or even both!  (Actually, I now wish std::is_assignable worked like that - it would be easier to remember which parameter is which!)

None of the above is a concrete suggestion - intended merely as food for thought!