15.9.4. The eval
Functions
The eval
functions are the heart of our query system. Each of these functions calls eval
on its operand(s) and then applies its own logic: The OrQuery eval
operation returns the union of the results of its two operands; AndQuery
returns the intersection. The NotQuery
is more complicated: It must return the line numbers that are not in its operand’s set.
To support the processing in the eval
functions, we need to use the version of QueryResult
that defines the members we added in the exercises to §12.3.2 (p. 490). We’ll assume that QueryResult
has begin
and end
members that will let us iterate through the set
of line numbers that the QueryResult
holds. We’ll also assume that QueryResult
has a member named get_file
that ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.