У меня есть структура:
struct Params {
std::shared_ptr<void> user_data;
/*... */
};
Я хочу использовать его вот так:
int main() {
std::shared_ptr<SpecializedParams> sp(new SpecializedParams(100));
Params params;
/*... */
params.user_data = std::static_pointer_cast<void>(sp);
/*... */
std::shared_ptr<SpecializedParams> sp2 =
std::static_pointer_cast<SpecializedParams>(
params.user_data
);
/*... */
return 0;
}
Это допустимо и безопасно?