Namespaces and Organization
Nested Namespaces
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`.