我知道内联函数是其主体插入到调用它们的位置的函数。那么为什么内联函数在被调用时不受范围变化的影响:
#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++ 不知道它cout
是成员?std