gpt4 book ai didi

c++ - 为什么内联函数看不到作用域内部?

转载 作者:太空狗 更新时间:2023-10-29 19:44:13 27 4
gpt4 key购买 nike

我理解内联函数是函数体被插入到它们被调用的地方。那么为什么内联函数在调用时不受范围变化的影响:

#include <iostream>

inline void alert(const std::string &str) { cout << str; }

int main() {
using namespace std;

alert("Hello World"); // cout << "Hello World";
}

这不起作用,因为我收到错误 cout was not declared in this scope,但如果我这样做了 std::cout,它就会起作用。如果内联函数的函数体被插入作用域,为什么 C++ 不知道 coutstd 的成员?

最佳答案

您所描述的行为是一个宏。内联函数是一个常规函数,是否内联它取决于编译器。在作用域规则方面,它的行为与任何其他函数完全一样。

关于c++ - 为什么内联函数看不到作用域内部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959901/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com