重载分辨率是一种语言机制,可以在几个可行的函数重载中进行选择。即使对于有经验的用户来说,它的规则也很复杂且经常令人惊讶。
这个所谓的重复解释了为什么不允许这样做的机制,并显示了它无法工作的极端情况,但未能解决为什么 C++ 在这种情况下拒绝允许它的问题...
我想做一个简单的ostream&运算符<< overload, but I don't want any ambiguity errors from the compiler if there so happens to be another overload. Here is the closest thing I could
是的,over.over#note-2(我在阅读这个答案时偶然发现的)是什么意思?我真的不明白。 作为上下文,我复制了下面 over.over#2 的文本: 如果没有ta...
下面是一段代码,尝试向另一个可以接受任何类型值的函数提供指向重载函数的指针: 模板 void AcceptAnything(T&&...
假设我有一个完善的转发功能: 模板 void f(T&& t) { /* 做某事 */ } 我有特定类型 T,我想允许对其进行复制列表初始化,s...
在下面的程序中,模板函数 f 调用重载模板函数 p,其中一个重载是在 f 之后声明的,但据我了解,它必须在实例化点找到......
我正在尝试编写一个自定义字符串类 MyString ,并从 const char* 进行隐式转换。 除此之外,我想通过移位运算符将 MyString 输出到任何 std::ostream 中。甚至更...
在下面的示例中,0 的行为方式很特殊,我想知道为什么。我的理解也如下。 #包括 模板 无效 f(T a) { std::cout <...
我在学校学习C++。我们目前正在讨论重载函数的主题。我们进行了一个初始代码块的练习。然后,我们看到一个函数调用,我们必须确定哪个
带有std::function类型参数、nullptr值和shared_ptr类型的函数模板重载
下面的例子中,为什么最后一个调用的是以std::function为参数的函数重载呢? #包括 #包括 #包括 模板<...
使用“表达式 SFINAE”时如何获得普通 `auto` 返回类型的行为?
考虑以下代码。 结构小部件{ int& get(); }; 模板 自动 func_1(X& x) { 返回 x.get(); } 模板 自动 func_2(X& x) ->
考虑以下代码: 模板 void f(const T& a, const T&b) { std::cout << "#1"; } template void f(T&& ...a) { std::cout &l...
接受 const char(&)[N] 的函数模板比接受 const T& 的函数模板更专业吗?
我定义了两个版本的函数模板,名为compare: #包括 使用命名空间 std; // 拳头版本 模板 int 比较(const char (&a)[...
为什么重载解析在传递 {} 时更喜欢 std::nullptr_t 而不是类?
以下代码打印 nullptr 而不是空(godbolt 链接): #包括 类空 { }; #如果1 无效 f(std::nullptr_t) { std::cout << "nullptr\n"; } #endif...
以下代码打印 nullptr 而不是预期的空(godbolt 链接): #包括 类空 { }; #如果1 无效 f(std::nullptr_t) { std::cout << "nullptr\n&qu...
考虑: 无效 f(int); // (1) 无效 f(int, int); // (2) 自动 pf1 = static_cast< void (*)(int) >(f); // 好的,(1) 的地址 自动 pf2 = static_cast< void (*)(int, int) >(f); ...
一种可能的方法是让重载函数的返回类型存储特定函数的信息: 模板 结构体tpinf { 我们...
如何 std::cout << a type which has many (ambiguous) user-defined conversion functions?
这里我有一个 C++ 类,它处理远远超出 long long 的大数。它将数据存储为 std::string。现在我这里有很多很多转换器: 类 BigInt { 私人的: std::字符串x;
传递 long 时 int32_t 或 int64_t 参数之间的不明确重载
注意:这与在编译时确定整型中的位数非常相似,但是这是一个非常简化的版本,全部包含在一个 .cpp 中 编辑:添加了一个解决方案 - 虽然
我希望能够在重载解析中区分数组和指针: 类字符串{ 民众: 字符串(const char* c_str); 模板 字符串(常量字符...