#include <iostream>
using namespace std;
// Variable created inside namespace
namespace first
{
int val = 500;
}
// Global variable
int val = 100;
// Ways to do it: https://en.cppreference.com/w/cpp/language/namespace
namespace ns_name { declarations }
inline namespace ns_name { declarations }
namespace { declarations }
ns_name::name
using namespace ns_name;
using ns_name::name;
namespace name = qualified-namespace ;
namespace ns_name::inline(since C++20)(optional) name { declarations }
// Typescript even supports splitting namespaces across multiple files:
// Validation.ts
namespace Validation {
export interface StringValidator {
isAcceptable(s: string): boolean;
}
}
// LettersOnlyValidator.ts
/// <reference path="Validation.ts" />
namespace Validation {
const lettersRegexp = /^[A-Za-z]+$/;
export class LettersOnlyValidator implements StringValidator {
isAcceptable(s: string) {
return lettersRegexp.test(s);
}
}
}
namespace MyNamespace;
class MyClass
{
public void MyMethod()
{
System.Console.WriteLine("Creating my namespace");
}
}
namespace Widgets
type MyWidget1 =
member this.WidgetName = "Widget1"
module WidgetsModule =
let widgetName = "Widget2"
import std::io;
...
io::printf("%d", i);
(ns-create 'hello-world)
(ns-define
'hello-world
'print
(lambda ()
(display "hello world!\n")))
(hello-world::print)
Languages with Namespaces include C++, TypeScript, C#, F#, C3, Slope, Dale
Languages without Namespaces include C, Speedie
View all concepts with or missing a hasNamespaces measurement