library
cpp.Library.vectorName
Section titled “cpp.Library.vectorName”def Library.vectorName : StringThe library’s vector class template.
cpp.Library.stringName
Section titled “cpp.Library.stringName”def Library.stringName : StringThe library’s string class.
cpp.Library.listName
Section titled “cpp.Library.listName”def Library.listName : StringThe library’s class template of a braced list’s elements (the one the language names, [dcl.init.list]p5).
cpp.Library.vectorType
Section titled “cpp.Library.vectorType”def Library.vectorType (t : TypeSyntax) : TypeSyntaxThe syntax’s vector type as the library’s template’s instance.
cpp.Library.isVector
Section titled “cpp.Library.isVector”def Library.isVector (t : TypeSyntax) : BoolWhether a written type is a vector (the syntax’s, or the template’s instance).
cpp.Library.stringMember
Section titled “cpp.Library.stringMember”def Library.stringMember (name : String) : Option StringThe full name of a member type of the library’s string written name (string::size_type under using namespace std, or std::string::size_type), if that is what it is.
cpp.Library.stringType
Section titled “cpp.Library.stringType”def Library.stringType (t : TypeSyntax) : TypeSyntaxThe syntax’s string type as the library’s class; a member type of it as the typedef the class’s lowering declares.
cpp.Library.isString
Section titled “cpp.Library.isString”def Library.isString (t : TypeSyntax) : BoolWhether a written type is a string or a member type of one (the syntax’s, or the library’s class).
cpp.Library.isList
Section titled “cpp.Library.isList”def Library.isList (t : TypeSyntax) : BoolWhether a written type is a std::initializer_list.
cpp.Library.lastName
Section titled “cpp.Library.lastName”def Library.lastName (x : String) : StringA name without its qualifiers.
cpp.Library.calledName
Section titled “cpp.Library.calledName”def Library.calledName (e : Expr) : List StringThe name a call names: a member function’s, or a function’s without its qualifier.
cpp.Library.operatorUsed
Section titled “cpp.Library.operatorUsed”def Library.operatorUsed (e : Expr) : List StringThe operator functions an expression can use by its operator ([over.match.oper]).
cpp.Library.usedName
Section titled “cpp.Library.usedName”def Library.usedName (e : Expr) : List StringThe functions an expression names: by a call, or by an operator.
cpp.Library.streamed
Section titled “cpp.Library.streamed”def Library.streamed (s : Stmt) : List StringThe operator functions a statement can use: output’s operator<<.
cpp.Library.declares
Section titled “cpp.Library.declares”def Library.declares (items : List Item) : List StringThe names (without qualifiers) of the classes and the functions other than operators items declare.
cpp.Library.programNames
Section titled “cpp.Library.programNames”def Library.programNames (items : List Item) : List StringThe names (without qualifiers) a program’s items name: the classes of its written types and the functions it calls.
cpp.Library.asMember
Section titled “cpp.Library.asMember”def Library.asMember (f : FunctionDefinition) : MemberA free function seen as a member (whether it is kept and what it calls are found the same way).
cpp.Library.namesList
Section titled “cpp.Library.namesList”def Library.namesList (t : TypeSyntax) : BoolWhether a written type names std::initializer_list (inside the library, before its namespace is flattened,
without the qualifier).
cpp.Library.takesList
Section titled “cpp.Library.takesList”def Library.takesList (m : Member) : BoolWhether a member takes a std::initializer_list (only a braced list or a list object can be its argument,
[over.match.list]).
cpp.Library.kept
Section titled “cpp.Library.kept”def Library.kept (lists : Bool) (names : List String) (m : Member) : BoolWhether a library class’s member is kept when the names are called (and lists, whether the program has
std::initializer_list).
cpp.Library.prunedClass
Section titled “cpp.Library.prunedClass”def Library.prunedClass (lists : Bool) (names : List String) (d : ClassDefinition) : ClassDefinitionA class with only its kept members.
cpp.Library.pruned
Section titled “cpp.Library.pruned”def Library.pruned (lists : Bool) (names : List String) (items : List Item) : List ItemLibrary items with only their kept functions (their classes’ members, their free functions).
cpp.LibraryMember
Section titled “cpp.LibraryMember”record LibraryMemberA library class’s member: whether it is kept without being named, whether it takes a std::initializer_list, its
name (a member function’s), and the names it calls.
cpp.LibraryMember.of
Section titled “cpp.LibraryMember.of”def LibraryMember.of (d : ClassDefinition) (m : Member) : LibraryMemberA member’s entry: what it calls (found as in a class of its own).
cpp.Library.members
Section titled “cpp.Library.members”def Library.members (items : List Item) : List LibraryMemberThe functions of library items: their classes’ members (a class template’s explicit specializations’ too) and their free functions.
cpp.Library.closed
Section titled “cpp.Library.closed”def Library.closed (fuel : Nat) (members : List LibraryMember) (names : List String) : List StringThe names called, with those the usable members they name call, and so on (fuel bounds the rounds).
cpp.LibraryHeader
Section titled “cpp.LibraryHeader”record LibraryHeaderA header of the library: its name, the headers it includes (by name), its items and their functions (made when a
program includes it: a header’s items are a large tree, and a program that includes few headers does not build the
others’), and the names it declares (Library.declares of its items, generated with them as data: choosing a
program’s headers reads only these).
cpp.LibraryHeader.of
Section titled “cpp.LibraryHeader.of”def LibraryHeader.of (name : String) (needs : List String) (items : Unit -> List Item) (members : Unit -> List LibraryMember) (declares : List String) : LibraryHeaderThe header name that includes the headers needs, with its items and their functions members (each made when
it is first needed: a top-level constant behind each, so made once) and the names declares they declare.
cpp.LibraryHeader.named
Section titled “cpp.LibraryHeader.named”def LibraryHeader.named (h : LibraryHeader) (names : List String) : BoolWhether a program names something a header declares.
cpp.Library.initializerListMembers
Section titled “cpp.Library.initializerListMembers”def Library.initializerListMembers : List LibraryMemberThe functions of Library.initializerList, made once (when a program first includes the header).
cpp.Library.lists
Section titled “cpp.Library.lists”def Library.lists : LibraryHeader<initializer_list>.
cpp.Library.stringMembers
Section titled “cpp.Library.stringMembers”def Library.stringMembers : List LibraryMemberThe functions of Library.string, made once (when a program first includes the header).
cpp.Library.strings
Section titled “cpp.Library.strings”def Library.strings : LibraryHeader<string> (with <iterator>, whose distance the range versions use).
cpp.Library.iteratorMembers
Section titled “cpp.Library.iteratorMembers”def Library.iteratorMembers : List LibraryMemberThe functions of Library.iterator, made once (when a program first includes the header).
cpp.Library.iterators
Section titled “cpp.Library.iterators”def Library.iterators : LibraryHeader<iterator>’s std::prev and std::next.
cpp.Library.vectorMembers
Section titled “cpp.Library.vectorMembers”def Library.vectorMembers : List LibraryMemberThe functions of Library.vector, made once (when a program first includes the header).
cpp.Library.vectors
Section titled “cpp.Library.vectors”def Library.vectors : LibraryHeader<vector> (with <iterator>’s std::prev and std::next, as libc++’s brings them in).
cpp.Library.pairMembers
Section titled “cpp.Library.pairMembers”def Library.pairMembers : List LibraryMemberThe functions of Library.pair, made once (when a program first includes the header).
cpp.Library.pairs
Section titled “cpp.Library.pairs”def Library.pairs : LibraryHeader<utility>’s std::pair and std::make_pair.
cpp.Library.tupleMembers
Section titled “cpp.Library.tupleMembers”def Library.tupleMembers : List LibraryMemberThe functions of Library.tuple, made once (when a program first includes the header).
cpp.Library.tuples
Section titled “cpp.Library.tuples”def Library.tuples : LibraryHeader<tuple>’s std::tuple (one to four elements), std::make_tuple, std::get, std::tie and std::tuple_element.
cpp.Library.comparisonMembers
Section titled “cpp.Library.comparisonMembers”def Library.comparisonMembers : List LibraryMemberThe functions of Library.comparison, made once (when a program first includes the header).
cpp.Library.comparisons
Section titled “cpp.Library.comparisons”def Library.comparisons : LibraryHeader<functional>’s std::less and std::greater.
cpp.Library.algorithmMembers
Section titled “cpp.Library.algorithmMembers”def Library.algorithmMembers : List LibraryMemberThe functions of Library.algorithm, made once (when a program first includes the header).
cpp.Library.algorithms
Section titled “cpp.Library.algorithms”def Library.algorithms : LibraryHeader<algorithm>’s sorting, binary search and heaps.
cpp.Library.dequeMembers
Section titled “cpp.Library.dequeMembers”def Library.dequeMembers : List LibraryMemberThe functions of Library.deque, made once (when a program first includes the header).
cpp.Library.deques
Section titled “cpp.Library.deques”def Library.deques : LibraryHeader<deque>’s std::deque (with <iterator>, whose distance its assign(i, j) uses).
cpp.Library.numericMembers
Section titled “cpp.Library.numericMembers”def Library.numericMembers : List LibraryMemberThe functions of Library.numeric, made once (when a program first includes the header).
cpp.Library.numerics
Section titled “cpp.Library.numerics”def Library.numerics : LibraryHeader<numeric>’s std::accumulate, std::iota, std::partial_sum, std::gcd and std::lcm.
cpp.Library.bitsetMembers
Section titled “cpp.Library.bitsetMembers”def Library.bitsetMembers : List LibraryMemberThe functions of Library.bitset, made once (when a program first includes the header).
cpp.Library.bitsets
Section titled “cpp.Library.bitsets”def Library.bitsets : LibraryHeadercpp.Library.unorderedMapMembers
Section titled “cpp.Library.unorderedMapMembers”def Library.unorderedMapMembers : List LibraryMemberThe functions of Library.unorderedMap, made once (when a program first includes the header).
cpp.Library.unorderedMaps
Section titled “cpp.Library.unorderedMaps”def Library.unorderedMaps : LibraryHeader<unordered_map>.
cpp.Library.queueMembers
Section titled “cpp.Library.queueMembers”def Library.queueMembers : List LibraryMemberThe functions of Library.queue, made once (when a program first includes the header).
cpp.Library.queues
Section titled “cpp.Library.queues”def Library.queues : LibraryHeader<queue>’s std::queue and std::priority_queue.
cpp.Library.stackMembers
Section titled “cpp.Library.stackMembers”def Library.stackMembers : List LibraryMemberThe functions of Library.stack, made once (when a program first includes the header).
cpp.Library.stacks
Section titled “cpp.Library.stacks”def Library.stacks : LibraryHeader<stack>’s std::stack.
cpp.Library.treeMembers
Section titled “cpp.Library.treeMembers”def Library.treeMembers : List LibraryMemberThe functions of Library.tree, made once (when a program first includes the header).
cpp.Library.trees
Section titled “cpp.Library.trees”def Library.trees : LibraryHeaderThe red-black tree std::set and std::map keep their elements in.
cpp.Library.setMembers
Section titled “cpp.Library.setMembers”def Library.setMembers : List LibraryMemberThe functions of Library.set, made once (when a program first includes the header).
cpp.Library.sets
Section titled “cpp.Library.sets”def Library.sets : LibraryHeader<set>’s std::set.
cpp.Library.mapMembers
Section titled “cpp.Library.mapMembers”def Library.mapMembers : List LibraryMemberThe functions of Library.map, made once (when a program first includes the header).
cpp.Library.maps
Section titled “cpp.Library.maps”def Library.maps : LibraryHeader<map>’s std::map.
cpp.Library.limitsMembers
Section titled “cpp.Library.limitsMembers”def Library.limitsMembers : List LibraryMemberThe functions of Library.limits, made once (when a program first includes the header).
cpp.Library.limitsHeader
Section titled “cpp.Library.limitsHeader”def Library.limitsHeader : LibraryHeader<limits>’s std::numeric_limits.
cpp.Library.streamIteratorMembers
Section titled “cpp.Library.streamIteratorMembers”def Library.streamIteratorMembers : List LibraryMemberThe functions of Library.streamIterator, made once (when a program first includes the header).
cpp.Library.streamIterators
Section titled “cpp.Library.streamIterators”def Library.streamIterators : LibraryHeader<iterator>’s std::ostream_iterator, a header of its own (the others that include <iterator> do not bring in
the stream’s class).
cpp.Library.headers
Section titled “cpp.Library.headers”def Library.headers : List LibraryHeaderThe library’s headers, each after the headers it includes.
cpp.Library.withNeeds
Section titled “cpp.Library.withNeeds”def Library.withNeeds (fuel : Nat) (wanted : List String) : List StringThe headers wanted (by name) with the headers they include, in the library’s order (fuel bounds the rounds).
cpp.Library.bracedDeclaration
Section titled “cpp.Library.bracedDeclaration”def Library.bracedDeclaration (s : Stmt) : List BoolWhether a statement declares something initialized by a braced list.
cpp.Library.bracedExpression
Section titled “cpp.Library.bracedExpression”def Library.bracedExpression (e : Expr) : List BoolWhether an expression is a braced list (x = {1, 2}, f({1, 2}), return {1, 2}, new T{1, 2}), which a class’s
initializer-list constructor or operator= takes: without them {1, 2} would be taken as a constructor’s arguments.
e is the expression.
cpp.Library.initializerStatements
Section titled “cpp.Library.initializerStatements”def Library.initializerStatements (inits : List MemberInit) : List StmtA constructor’s initializers inits as the statements they are lowered to (sMInit, sMInitList).
cpp.Library.memberBodies
Section titled “cpp.Library.memberBodies”def Library.memberBodies (m : Member) : List StmtThe statements of a member’s bodies (a constructor’s initializers too).
cpp.Library.bodies
Section titled “cpp.Library.bodies”def Library.bodies (items : List Item) : List StmtThe bodies of items’ functions (members’ too).
cpp.Library.braced
Section titled “cpp.Library.braced”def Library.braced (items : List Item) : BoolWhether a program initializes something with a braced list (a global, a local, or a member in a constructor).
cpp.Library.prepare
Section titled “cpp.Library.prepare”def Library.prepare (holeTypes : List TypeSyntax) (p : Program) : ProgramA program with the library’s items it uses first, its vector and string types the library’s.