Quiero almacenar una referencia a un objeto en un objeto boost::any
. ¿Cómo inicializo el impulso :: cualquier objeto? Intenté std::ref()
, pero boost::any
se inicializó con std::reference_wrapper<>
. Por ejemplo, la siguiente¿Cómo inicializo boost :: any con una referencia a un objeto?
#include <boost/any.hpp>
#include <cxxabi.h>
#include <iostream>
int main(void)
{
int s;
int i = 0;
boost::any x(std::ref(i));
std::cout << abi::__cxa_demangle(x.type().name(), 0, 0, &s) << "\n";
return 0;
}
impresiones
std::reference_wrapper<int>
Quiero que el boost::any
que contienen int&
lugar.
Como un lado, no hay type_info para los tipos de referencia, en cambio, type_info para el tipo al que se hace referencia se toma 'cout << typeid (int) .name() <<" \ t "<< typeid (int &). name() << "\ t" << typeid (int) == typeid (int &) 'produce' ii 1', por lo que incluso si el any almacenara una referencia, su tipo seguiría siendo 'typeid (int)' – stellarpower