With C++11 a lot of constructs have become obsolete and can now be replaced by cleaner implementations. One example is the THROW macro that used a construct of strings and values added together by the "<<" operator to form the actual message to be passed to the exception.
With variadic templates, this construct has become obsolete and one can now use the template function create_execption to construct an exception of any type with a constructor that expects a std::string as argument.
Another example are the old BOOST lambda constructs that have now be replaced by the much more flexible C++ lambdas.