Perfect-forwarding while implementing emplace
You are using std::forward correctly. However, there are several other things worth noting about your code:


why do you need a private counter instead of re-using m_s.size() that will automatically update itself after each emplace_back()?
are you sure that you don't need additional template arguments Compare and Allocator instead of relying on their defaults std::less&lt;T&gt; and std::allocator&lt;T&gt;?
since you are using C++11 already, please use auto to get rid of the pair&lt;itererator, bool&gt; (and if you are using C++14, you can also use auto for the return type). 
try also to write using iterator = typename std::set&lt;T&gt;::iterator; because left-to-right is much easier to parse than right-to-left of the current typedef.