C++17 can define nested namespaces with a compact outer::inner spelling.

Nested Namespaces

nested_namespaces.cpp
#include <iostream>
#include <string>

namespace school::grades {
std::string letter(int score) {
    if (score >= 90) {
        return "A";
    }
    if (score >= 80) {
        return "B";
    }
    return "C";
}
}

int main() {
    int score = ;

    std::string grade = school::grades::letter(score);

    std::cout << "score=" << score << std::endl;
    std::cout << "grade=" << grade << std::endl;
    return 0;
}
#include <iostream>
#include <string>

namespace school::grades {
std::string letter(int score) {
    if (score >= 90) {
        return "A";
    }
    if (score >= 80) {
        return "B";
    }
    return "C";
}
}

int main() {
    int score = ;

    std::string grade = school::grades::letter(score);

    std::cout << "score=" << score << std::endl;
    std::cout << "grade=" << grade << std::endl;
    return 0;
}
#include <iostream>
#include <string>

namespace school::grades {
std::string letter(int score) {
    if (score >= 90) {
        return "A";
    }
    if (score >= 80) {
        return "B";
    }
    return "C";
}
}

int main() {
    int score = ;

    std::string grade = school::grades::letter(score);

    std::cout << "score=" << score << std::endl;
    std::cout << "grade=" << grade << std::endl;
    return 0;
}
nested namespace Nested namespaces organize names into levels, such as `school::grades`.