id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 4668,Conditions for operator overload in Proto (documentation),Roland Bock ,Eric Niebler,"Taken from this thread in boost-users: http://lists.boost.org/boost-users/2010/09/62747.php This explanation by Thomas Heller would make a good section for the proto documentation: {{{ In order for a proto overload to be created the following conditions must be true: 1) the operands must be in a compatible domain 2) the left hand operand and the right hand operand must match the grammar specified in the domain 3) the resulting expression must match the grammar specified in the domain. }}} To illustrate what this means, this minimalistic example might be useful, too: This grammar {{{ proto::plus, proto::terminal > }}} used in a domain would not allow {{{ i + i; }}} with i being an int-terminal. ",Tasks,assigned,To Be Determined,proto,Boost 1.44.0,Optimization,,"grammar, domain, extension, operator overload",