Here I talked about for each keyword.
But it didn’t work with references and other good stuff.
Here i have posted some for each solution which supports references and even string literals.
The only disadvantage compared to boost version is lack of support for noncopyable and rvalues even if compiler does support it.
But the code much more optimal than boost version.
Enjoy.