using namespace std 和 using namespace chrono 为什么会有先后顺序?

Admin·1/16/2025·0 views
C++开发工具

今天发现使用using namespace chrono; using namespace std;是有先后顺序的。顺序不对编译器会报错

#include <iostream>
#include <chrono>
using namespace chrono;
using namespace std;

int main() {
    milliseconds ms(1000);  // 编译错误:不明确的符号
    cout << ms.count() << " milliseconds" << endl;
    return 0;
} 

在这种情况下,using namespace std 会将 std::milliseconds 引入作用域,而编译器可能会遇到歧义,因为它无法确定应使用 std::chrono::milliseconds 还是 std::milliseconds

Comments (0)