JSON'da bir anahtar yolunun tüm düğüm adlarını toplamak istediğim bir durum var. "0" dizi indeksinin durumuna da izin verilsin, ancak alıntıları unutmak kolaydır, bu da dereference olduğunda çökmeye neden olur. Bu yüzden bunu reddetmek istiyorum. Misal:
#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;
}
Bunu buldum ve denedim Yapıcı olmayan işlevlerde örtük dönüşümleri nasıl önleyebilirim? aşağıdaki gibi:
#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;
}
Ama derleyici beni hala anlamadı.
Herhangi bir öneri?
Lütfen terminolojilerin ve varsayımların kötüye kullanılmasına dikkat edin, teşekkürler!
nullptr
Ayrıca yasaklamak ister misiniz ?
std::vector<const char*>
Bunun yerine kullanmanız için bir neden varstd::vector<std::string>>
mı?