Index: src/Common/ScopedMap.h
===================================================================
--- src/Common/ScopedMap.h	(revision c3e44e6a5d368d26efe670da02c06e14a08d5125)
+++ src/Common/ScopedMap.h	(revision 4612bb06a5671360f9b7084782e556a29aa661b6)
@@ -33,5 +33,14 @@
 	struct Scope {
 		MapType map;
-		Note note;	
+		Note note;
+
+		template<typename N>
+		Scope(N&& n) : map(), note(std::forward<N>(n)) {}
+		
+		Scope() = default;
+		Scope(const Scope&) = default;
+		Scope(Scope&&) = default;
+		Scope& operator= (const Scope&) = default;
+		Scope& operator= (Scope&&) = default;
 	};
 	typedef std::vector< Scope > ScopeList;
@@ -210,4 +219,10 @@
 	}
 
+	// Starts a new scope with the given note
+	template<typename N>
+	void beginScope( N&& n ) {
+		scopes.emplace_back( std::forward<N>(n) );
+	}
+
 	/// Ends a scope; invalidates any iterators pointing to elements of that scope
 	void endScope() {
@@ -217,5 +232,9 @@
 
 	/// Default constructor initializes with one scope
-	ScopedMap() { beginScope(); }
+	ScopedMap() : scopes() { beginScope(); }
+
+	/// Constructs with a given note on the outermost scope
+	template<typename N>
+	ScopedMap( N&& n ) : scopes() { beginScope(std::forward<N>(n)); }
 
 	iterator begin() { return iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); }
Index: src/Parser/TypedefTable.cc
===================================================================
--- src/Parser/TypedefTable.cc	(revision c3e44e6a5d368d26efe670da02c06e14a08d5125)
+++ src/Parser/TypedefTable.cc	(revision 4612bb06a5671360f9b7084782e556a29aa661b6)
@@ -91,5 +91,5 @@
 
 void TypedefTable::enterScope() {
-	kindTable.beginScope();
+	kindTable.beginScope(0);
 	debugPrint( cerr << "Entering scope " << kindTable.currentScope() << endl; print() );
 } // TypedefTable::enterScope
Index: src/Parser/TypedefTable.h
===================================================================
--- src/Parser/TypedefTable.h	(revision c3e44e6a5d368d26efe670da02c06e14a08d5125)
+++ src/Parser/TypedefTable.h	(revision 4612bb06a5671360f9b7084782e556a29aa661b6)
@@ -25,6 +25,7 @@
 	typedef ScopedMap< std::string, int, int > KindTable;
 	KindTable kindTable;	
-	unsigned int level = 0;
+	unsigned int level;
   public:
+    TypedefTable() : kindTable{0}, level{0} {}
 	~TypedefTable();
 
