zwiększ :: dowolny zamiennik poniższego kodu

Chciałbym pozbyć się zależności od mojego kodu. Mam następujący konstrukt struct. Podczas wywoływania i używania tej struktury w innym miejscu koduboost::any_cast jest używany. Wiem, że zrobi to klasa szablonów, ale trudno jest napisać ten szablon. - C ++ Rookie.

 struct Properties {
 public:
 Properties() {}
 Properties(const std::string &s, const boost::any & p) {
      name = s;
      value = p;
 }

 template <typename T>
 Properties(T n) {
      value = n;
 }
 boost::any value;

 std::string name;
};

questionAnswers(2)

yourAnswerToTheQuestion