Há uma situação em que desejo coletar todos os nomes de nós de um caminho para uma chave no JSON. Considere a condição do índice de matriz "0", "1" também é permitida, mas é fácil esquecer as aspas, o que levaria a uma falha quando a desreferencia. Então, eu quero rejeitar isso. Exemplo:
#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;
}
Encontrei e tentei isso Como evito conversões implícitas em funções não construtivas? como segue:
#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;
}
Mas o compilador ainda não me entendeu.
Alguma sugestão?
Aponte qualquer uso indevido de terminologias e suposições, obrigado!
nullptr
também?
std::vector<const char*>
vez destd::vector<std::string>>
?