Std :: any для объектов, которые не могут быть скопированыC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std :: any для объектов, которые не могут быть скопированы

Сообщение Anonymous »

У меня есть объект, который удерживает уникальный_ptr и, как таковой Иметь std :: any удерживайте этот объект, но единственные альтернативы, которые я обнаружил, - это либо сделать STD :: any удерживать указатель, который добавляет бесполезное косвеном, либо сделать мой объект иметь уникальный пт. Надеемся, что код будет проиллюстрировать мою точку зрения: < /p>

Код: Выделить всё

//Compiled with clang++ -std=c++2a; clang version 5.0.0
#include 
#include 
#include 

struct A {
std::unique_ptr m = std::make_unique(11);
A(A&& a): m(std::move(a.m)) {}
A() {}
};

struct B {
std::shared_ptr m = std::make_shared(11);
};

template
void use_any_ptr() {
std::any a{new T{}};
std::cout m) 

Подробнее здесь: [url]https://stackoverflow.com/questions/46852168/stdany-for-objects-that-cant-be-copy-constructed[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»