es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: VARIADIC-TEMPLATES

Plantillas variádicas de C++

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

¿Cómo puede una plantilla variádica representar los parámetros de constructor específicos de una estructura en IntelliSense?

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

Error de conversión incompatible al asignar, aunque lo capturo con una instrucción if en C++11.

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

Sobrescribir la declaración de un paquete de parámetros y los lugares de expansión.

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