-
多重继承会导致虚假的歧义虚拟函数重载
在此示例中,类<code>Foo</code>和<code>Bar</code>是从库中提供的。我的课程<code>Baz</code>继承自两者。 <pre> -
两阶段功能模板的编译:不是*仅*在第二阶段使用ADL吗?
我想知道<a href="https://wandbox.org/permlink/lOVCxA1aY7HZejfV" rel="nofollow noreferrer">following code</a>为何编译。 <pre -
在模板库中查找名称:为什么要添加此->
请考虑以下内容: <pre><code>struct Base { void foo(); }; template <class T> struct Derived : Base { void bar( -
脱机成员函数定义是否需要使用低于全球范围的完全限定的类名?
<a href="https://stackoverflow.com/questions/58913331/impossible-to-fully-qualify-class-name-in-out-of-class-declarator-of-function-de"> -
为什么此模板功能无法正常运行?
我正在阅读有关模板函数的信息,并对这个问题感到困惑: <pre><code>#include <iostream> void f(int) { -
命名空间信息损害了C ++的可读性
我是<code>C++</code>的新手,并且有<code>C</code>的背景。我很难采用的一件事是经常使用范围运算符,例如<c -
具有自己的类和std :: string_view的'operator =='的模棱两可的重载
我在<code>MyClass</code>中创建了一个名为<code>namespace N</code>的类。现在,我在<code>operator==</code>中定义了一 -
如何使派生类中所有可访问的基类中的隐藏名称?
从这个问题开始: <ul> <li> <a href="https://stackoverflow.com/questions/59756738/pointer-derived-from-pure-virtual-classa-ca -
使用名称空间与使用名称空间闭包的范围
我试图理解为什么使用命名空间而不是显式声明命名空间外壳时函数中会存在歧义。 Book.h头文件 -
::(范围解析运算符)前没有任何内容
::的含义是什么,而不以任何内容开头 <pre><code>::flann::SearchParams param_k_; </code></pre> 我在一个项目 -
C ++:为什么名称依赖于构造函数,而不是静态成员函数 问题代码注意
对于我描述的场景<a href="https://stackoverflow.com/questions/59886167/c-how-to-partially-deduce-template-arguments-from-make-shar -
类中的函数定义需要其他类中的相同函数:编译错误
我有一个枚举类“ Suit”,并定义了一个函数“ string to_string(Suit e)” 在另一个类“ Card”中, -
发生“注入类名称”时会发生什么? (C ++)
根据<a href="https://en.cppreference.com/w/cpp/language/injected-class-name" rel="nofollow noreferrer">https://en.cppreference.com/w/cp -
如何将一个类的函数添加到同一个类的其他函数中的重载重排列表中?
问题在代码段之内: <pre><code>#include <algorithm> #include <utility> #include <iostream> struct A { -
模板函数中默认参数的实例化点
该标准允许在从非模板上下文中引用函数模板时将函数模板实例化,例如,在封闭的命名空间范围声明 -
解决命名空间d模板函数
在尝试实例化模板函数时,我观察到一些看似奇怪的行为。 简而言之,我正在实现模板功能库。 -
无法在类外看到函数重载
请考虑以下代码段: <pre><code>enum class Bar { A }; void foo(Bar) {} struct Baz { void foo() { foo(Bar::A -
有关使用好友功能查找姓名的问题
我已阅读[basic.lookup.unqual]的标准部分,对此感到困惑: <pre class="lang-cpp prettyprint-override"><code>typedef in -
关于函数名称查找的困惑 [basic.lookup.argdep]: [basic.lookup.unqual]:
我对标准中的一些规则感到困惑。我在这里引用它们: <h3> <a href="https://timsong-cpp.github.io/cppwp/n4659/bas -
如果函数需要指向类的指针,则该函数将完全脱离候选列表
为什么我也不能拥有一个与成员函数同名的非成员函数,如果它也碰巧指向了该类的指针呢? 无 -
引用基类模板的成员变量的简单方法
没有基类名称和作用域解析运算符,是否可以引用基类模板的成员变量? <pre><code>template<typename D&g -
尝试按值对地图进行排序但出现错误
我有一个带有地图的程序,我试图按值对它们进行排序,但出现错误。谁能告诉我我做错了什么。错误 -
使用指令和范围
我对以下代码有疑问: <pre class="lang-cpp prettyprint-override"><code>struct A { A(int i) {}; }; namespace Foo { using -
不合格的函数调用从错误的命名空间中选择函数
考虑以下代码: <pre class="lang-cpp prettyprint-override"><code>#include <iostream> namespace A { struct Mine {}; -
重载的子类函数无法调用名称相似的父类
我假设这是“根本不起作用”的问题之一,但是我不明白为什么。为什么我需要用<code>B</code>来限制<code> -
什么时候有UB,因为在实例化时ADL找不到最佳的过载匹配?
实例化一个函数主体时,从属函数调用重载解析应通过ADL在关联的命名空间中找到最佳匹配,否则该行 -
为什么Lib :: Foo不隐藏:: Foo?
以下程序编译(<a href="https://godbolt.org/z/Mfxe47" rel="nofollow noreferrer">live demo</a>),但我不明白为什么。 -
具有父名称空间的嵌套名称空间中的重载解析
我认为在嵌套的名称空间中,属于父(或全局)名称空间的任何内容均被视为用于重载解析,但是此示 -
ADL如何影响这段C ++代码?
实际上,以下代码无法使用Clang使用此命令进行编译: <code>clang++ -std=c++11 test.cc -o test</code>。 <p -
尝试通过使用带有虚拟参数的模板别名隐藏基类来混淆clang和gcc时,行为上的差异
请考虑以下c ++程序: <pre><code>class A { protected: int x; }; template<typename X> using B = A; template