Tag: VARIADIC-TEMPLATES
¿Cómo se restringen los tipos permitidos en las plantillas variádicas y la expresión de repliegue utilizando los conceptos de C++20? Por ejemplo, supongamos que me gustaría restringir la siguiente expresión de repliegue para que solo admita tipos enteros, ¿cómo haría eso? include & lt; string & gt; include & lt; . . . Read more
Estoy usando una definición de vector: vector<lmlink_out> os{ lmlink_out(typeid(string &)), lmlink_out(), lmlink_out(typeid(int),typeid(char)) }; usando el siguiente código funciona (definido dentro de la clase): class lmlink_out { vector<const type_info*> parameters; … public: template<typename… T, std::size_t N = sizeof…(T)> lmlink_out(const T&… args) : parameters({&args…}) {} usar esto otro da lugar a . . . Read more
Me gustaría ver Intellisense sobre constructores como make_unique. Miré make_unique e intenté lo siguiente (puede que esté equivocado) pero no funcionó. El siguiente código muestra lo que quiero hacer, no el problema. #include <memory> struct Struct { Struct(int a) { } }; template <typename type,=”” typename…=”” args=””> Type* make_struct(Args&&… args) . . . Read more
template <typename t=””> using Map = std::map<std::string, t=””>; class object_index { public: object_index(){}; int cntr = 0; Map<int> MapInt; Map<bool> MapBool; Map<std::string> MapStr; Map<double> MapDouble; template <typename v=””> void insert2Map(V lhs) { if (std::is_same<v, int=””>::value) { std::cout << “INT: “; std::string key = std::to_string(cntr); MapInt[key] = lhs; // ERROR /* . . . Read more
Tengo un simple setter de interfaz: template<typename interface=””> struct FrontEnd { virtual void inject(Interface*& ptr, Client* client) = 0; } Quiero implementar estas interfaces mediante paquetes de parámetros de esta forma: template<typename …=”” is=””> struct BackEnd : public FrontEnd<is>… { void inject(Is*& ptr, Client* client) override { ptr = someStuff<is>.get(client); . . . Read more