Hay una situación en la que quiero recopilar todos los nombres de nodos de una ruta a una clave en JSON. Tenga en cuenta la condición del índice de matriz "0", "1" también están permitidos, pero es fácil olvidar las comillas, lo que provocaría un bloqueo cuando se desreferenciara. Entonces quiero rechazar esto. Ejemplo:
#include <vector>
#include <iostream>
int func(const std::vector<const char*>& pin) {
return pin.size();
}
int main() {
// {"aname", "3", "path", "0"} wanted but this still compile
std::cout << func({"aname", "3", "path", 0}) << std::endl;
}
Encontré y probé esto ¿Cómo evito las conversiones implícitas en funciones que no son de construcción? de la siguiente manera:
#include <vector>
#include <iostream>
int func(const std::vector<const char*>& pin) {
return pin.size();
}
template<typename T>
int func(T pin) = delete;
int main() {
std::cout << func({"aname", "3", "path", 0}) << std::endl;
}
Pero el compilador todavía no me entendió.
¿Cualquier sugerencia?
Señale cualquier mal uso de terminologías y suposiciones, ¡gracias!
nullptr
también?
std::vector<const char*>
lugar destd::vector<std::string>>
?