インライン関数とは、呼び出された場所に本体が挿入された関数であることを理解しています。したがって、インライン関数が呼び出されたときにスコープの変更の影響を受けないのはなぜですか。
#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