Questions tagged «implicit-conversion»

将对象,变量或值从一种类型转换为另一种类型以满足类型限制,而无需通过语言语法特别要求进行转换。

2
尽管明确说明了返回类型,但对lambda的调用还是模棱两可的
鉴于lambda的类型是可确定的(可强制转换为a std::function(请纠正我,如果我错了,请纠正我)),重载函数应该同时使用两个函子。已定义?([&]() -> Type {}) 请注意,对于我当前的解决方案,我需要按引用捕获,这就是为什么代码包含其逻辑的原因。 以下示例描述了该问题: #include <iostream> #include <string> #include <functional> void do_some(std::function<void(int)> thing) { thing(5); } void do_some(std::function<bool(int)> thing) { if (thing(10)) { std::cout << "it's true!" << std::endl; } } int main() { int local_to_be_modified = 0; do_some( [&](int in) { local_to_be_modified = in; std::cout << …

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 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.