3
int(0)からベクター内のポインターへの暗黙的な変換を回避する方法
JSONでキーへのパスのすべてのノード名を収集したい状況があります。配列インデックス「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(); } …