相关疑难解决方法(0)

C++名称解析(和重载)规则列表

在哪里可以找到符合C++的编译器必须应用的规则列表才能执行名称解析(包括重载)?

我喜欢自然语言算法或流程图.

C++标准当然有这套规则,但随着新语言语句的引入而逐渐形成,结果很难记住.

总而言之,我想知道" 当它看到名字'A'时编译器会做什么的完整而详细的答案?"

我知道C++就是" 我们在X时这样做,但如果Z持有则不是Y "所以,我在问是否有可能使它更加线性.

编辑:我正在研究这个主题的草稿,一旦发布,可以集体改进.然而,这些天我很忙,可能需要时间来宣传一些东西.如果有兴趣我会将"关于原始txt文件的个人笔记"推广到更好的东西并发布.

c++ rules token-name-resolution

40
推荐指数
1
解决办法
4172
查看次数

为什么GCC允许在不使用其命名空间的情况下调用此函数?

可能重复:
为什么C++参数范围会影响命名空间中的函数查找?

今天我经历了这种奇怪的行为.我可以先调用strangeFn using namespace Strange,但不允许调用strangeFn2为什么?

namespace Strange
{
    struct X
    {
    };
    void strangeFn(X&) {}
    void strangeFn2(int) {}
}

int main()
{
    Strange::X x;
    strangeFn(x);    // GCC allows calling this function.
    strangeFn2(0);   // Error: strangeFn2 is not declared in this scope.
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

C++编译器如何解决符号的范围?

c++ scope namespaces

17
推荐指数
1
解决办法
1016
查看次数

标签 统计

c++ ×2

namespaces ×1

rules ×1

scope ×1

token-name-resolution ×1