Technically, yes, *get_if is enough, but most compilers can't recognize it yet. I think gcc can under specific circumstances, but the rest I've tested failed to do so.
Confirmed. Have people filed missed-optimization bugs against GCC and MSVC on this topic, yet? People should.