Escribí la siguiente función para obtener una cadena de fecha y hora usando boost.date_time.Propiedad/eliminación de la faceta en una configuración regional (std :: locale)
namespace bpt = boost::posix_time;
string
get_date_time_string(bpt::ptime time)
{
bpt::time_facet * facet(new bpt::time_facet);
facet->format("%Y%m%d%H%M%S");
stringstream return_value;
return_value.imbue(std::locale(std::locale::classic(), facet));
return_value << time;
return return_value.str();
}
que tenía una pregunta rápida acerca de la propiedad delete
'ing/del objeto facet
. std::locale's constructor no está explícito en la propiedad/delete
'ing del facet
. Intentó usar shared_ptr
-complicó y apiló las versiones asignadas de facet
- ambas causaron seg-faults. Además, la ejecución de la función anterior a través de valgrind no mostró ninguna fuga (lo que probablemente implica que la configuración regional o la transmisión se ocupan de delete
'ing), pero solo quería dejar claro que estoy haciendo lo correcto aquí. Gracias.
¡Genial! Gracias. [RTFM] (http://www.cplusplus.com/reference/std/locale/locale/facet/), ¿eh? ;) –
No me siento mal, ¡he hecho el mismo tipo de preguntas! – rcollyer
Guau, me gustaría que revisaran esta parte de la biblioteca estándar con el advenimiento C++ 11 .. – Zac