Если вы знаете список типов заранее, boost::variant<>
может быть более подходящим, чем boost::any
.В вашем случае вам может понадобиться
typedef boost:variant<
mystruct<float>,
mystruct<int>
mystruct<std::string>
> my_variant;
Это позволит использовать только эти 3 типа.В качестве альтернативы вы можете захотеть mystruct<boost:variant<float, int, std::string> >
, что внешне похоже.Я не могу судить по вашему вопросу, который больше всего подходит для вашей проблемы.