#
A queryable object is a read-only collection of key/value pair where each key is a customization point object known as a query object.
A query is an invocation of a query object with a queryable object as its first argument and a (possibly empty) set of additional arguments.
A query imposes syntactic and semantic requirements on its invocations.
2
#
Let q be a query object, let args be a (possibly empty) pack of subexpressions, let env be a subexpression that refers to a queryable object o of type O, and let cenv be a subexpression referring to o such that decltype(cenv)) is const O&.
The expression q(env, args..) is equal to ([concepts.equality]) the expression q(cenv, args..).
The expression q(env, args..) is equality-preserving ([concepts.equality]) and does not modify the query object or the arguments.
If the expression env.query(q, args..) is well-formed, then it is expression-equivalent to q(env, args..).
Unless otherwise specified, the result of a query is valid as long as the queryable object is valid.

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant