2017-05-12 3 views
0

fand ich ein Stück Code, der die folgende Anweisung verwendet:mit Namespace als Typ C++ verwendet

using flags = std::ios_base::fmtflags; 
flags fl = std::ios_base::dec; 

Dies ist das erste Mal, dass ich es begegnet. Wie können Sie einen Namespace als Typ verwenden?

+2

Es ist kein Namespace, sein ein * Typ alias * – WhiZTiM

+0

'mit namespace' und' mit other_stuff' unterschiedlich sind. Sie können sie als einfaches Englisch lesen, um die Bedeutung zu verstehen. – ForceBru

Antwort

5

Sie scheinen type aliasing mit using declerations zu verwirren. Typ-Alias ​​verhält sich wie ein typedef, definiert einen anderen Namen für einen vorhandenen Typ. Ihr Beispiel entspricht der folgenden:

typedef std::ios_base::fmtflags flags; 
flags fl = std::ios_base::dec; 
+0

Nicht in "in vielerlei Hinsicht", sondern genau wie typedef. – SergeyA

+1

@SergeyA 'using' kann templated sein. –

+0

Dann wird es Alias-Vorlage, nicht Alias-Typ. – SergeyA

3

Niemand verwendet einen Namespace als einen Typ in diesem Snippet. ist ein Typ, kein Namespace, und diese using flags = std::ios_base::fmtflags; Zeile fügt nur einen Alias ​​hinzu.

Verwandte Themen