এমন একটি পরিস্থিতি রয়েছে যেখানে আমি জেএসএনে একটি কী এর কাছে সমস্ত নোডের নাম সংগ্রহ করতে চাই। অ্যারে সূচক "0", "1" এর শর্তটি বিবেচনা করার অনুমতিও রয়েছে তবে উদ্ধৃতিগুলি ভুলে যাওয়া সহজ, যা শ্রদ্ধাবোধের পরে ক্রাশ হতে পারে। সুতরাং আমি এই প্রত্যাখ্যান করতে চাই। উদাহরণ:
#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;
}
আমি এটি খুঁজে পেয়েছি এবং চেষ্টা করেছি কী করে আমি অ-নির্মাণমূলক কার্যগুলিতে অন্তর্নিহিত রূপান্তরগুলি এড়াতে পারি? নিম্নলিখিত হিসাবে:
#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;
}
সংকলকটি তখনও আমাকে বুঝতে পারেনি।
যেকোনো পরামর্শ?
পরিভাষা এবং অনুমানের কোনও অপব্যবহারটি দয়া করে নির্দেশ করুন, আপনাকে ধন্যবাদ!
nullptr
?
std::vector<const char*>
পরিবর্তে ব্যবহার করার কারণ আছেstd::vector<std::string>>
?