Tag: C++17
No entiendo cuándo se pueden usar variables/objetos const en colecciones (particularmente con emplace). El siguiente código funciona con objetos const directamente, pero no cuando se usan punteros a objetos const. “`c++ #include <list> class MyData { }; int main() { std::list<><int, mydata="">> collection1{}; std::list<><int, mydata*="">> collection2{}; <pre><code>const MyData someData{}; const . . . Read more
Tengo un problema resolviendo un error de ambigüedad con una entidad existente en diferentes espacios de nombres, pero con el mismo nombre. “` namespace A {void Name();} // Se supone que esto se ha expandido para tener todo el código necesario. namespace A::B {int Name();} // Método diferente, mismo nombre. . . . Read more
Tengo una plantilla de clase tipo tupla como esta: template<class… t=””> struct Foo {} Ahora necesito implementar algo así: template<class t=””> void bar (const T&t) { if constexpr (IsFoo<T>::value) // trátalo como Foo else // una solución genérica } IsFoo puede implementarse de manera directa así: template <class t=””> struct . . . Read more
Para permitir la construcción de std::string a partir de std::string_view, existe un constructor de plantilla: cpp template<class T> explicit basic_string(const T& t, const Allocator& alloc = Allocator()); que solo se habilita si const T& es convertible a std::basic_string_view<CharT, Traits> (enlace). Mientras tanto, hay una guía de deducción especial para deducir . . . Read more
A continuación se muestra un ejemplo simple de cómo usar boost::log para escribir un registro: #include <boost/log/trivial.hpp> namespace logging = boost::log; logging::add_file_log(“sample.log”)->set_filter( logging::trivial::severity >= logging::trivial::info ); BOOST_LOG_TRIVIAL(info) << “contenido del registro”; Cada vez que se ejecuta “logging::add_file_log(“sample.log”)”, se reescribe el archivo de registro –se borra el contenido original y se . . . Read more