Parameterpack verändern
-
Hallo,
ich habe folgende Funktion:
template<typename ...Params> void execute( std::string const& name, Params&&... params ) { impl()->execute( name, std::forward<Params>( params )... ); }Ich möchte jetzt für std::string-Parameter den Wert verändern, gibt's da ne Möglichkeit?
-
-
mit eigenem Forwarder?
template<typename T> using reference_or_string_t = std::conditional_t<std::is_same_v<T&, std::string&>, std::string, T&&>; template<typename T> constexpr reference_or_string_t<T> my_forward(std::remove_reference_t<T>& t) { return std::forward<T>(t); } template<> std::string my_forward<std::string>(std::string& s) { return s + s; } template<> std::string my_forward<std::string&>(std::string& s) { return s + s; } template<typename ...Params> void execute( std::string const& name, Params&&... params ) { impl()->execute( name, my_forward<Params>( params )... ); }
