use std::forward instead of std::move on objects whose types have been deduced; don't take the sizeof incomplete types
Summary: Pretty sure std::forward is needed here instead of std::move. If you trace the call chain to see where the types of the objects come from, you'll see they can be deduced to be lvalues, so std::forward is the right choice. Also, moved some dicey looking code that appeared to be taking the size of some incomkplete types.
Reviewed By: spacedentist
Differential Revision:
D3214199
fb-gh-sync-id:
778190ffb25a648b839760a3dddfad8dc6d41c88
fbshipit-source-id:
778190ffb25a648b839760a3dddfad8dc6d41c88