15 #ifndef Om_Language_Operation_PairOperation_
21 #ifndef Om_Macro_Precompilation_
23 #include "boost/test/unit_test.hpp"
33 BOOST_AUTO_TEST_SUITE(PairOperationTest)
35 BOOST_AUTO_TEST_CASE(DefinitionTest) {
42 BOOST_AUTO_TEST_CASE(GeneralTest) {
85 BOOST_AUTO_TEST_SUITE_END()
102 Om::Language::Operation::PairOperation
106 inline char const * Type_::GetName() {
110 template <
typename ThePairOperation>
111 inline void Type_::GiveElements(
112 ThePairOperation & thePairOperation,
113 Consumer & theConsumer
115 theConsumer.TakeElement(
119 !thePairOperation.thisExpression.IsEmpty()
121 theConsumer.TakeQuotedElements(thePairOperation.thisExpression);
127 inline Type_::PairOperation():
130 template <
typename TheOperand>
131 inline bool Type_::TakeOperand(
132 Evaluation & theEvaluation,
133 TheOperand & theOperand
136 !theOperand.IsEmpty()
139 this->thisExpression.IsEmpty()
141 this->thisExpression.TakeElements(*theOperand);
143 this->thisExpression.IsEmpty()
150 this->thisExpression.TakeOperand(theOperand);
151 theEvaluation.TakeQuotedProducer(this->thisExpression);
155 template <
typename TheProducer>
156 inline bool Type_::TakeQuotedProducer(
157 Evaluation & theEvaluation,
158 TheProducer & theProducer
161 this->thisExpression.IsEmpty()
163 this->thisExpression.TakeElements(theProducer);
165 this->thisExpression.IsEmpty()
172 this->thisExpression.TakeQuotedProducer(theProducer);
173 theEvaluation.TakeQuotedProducer(this->thisExpression);
std::auto_ptr< TheGiveable > Give(TheGiveable &)
Calls Move on the object.
#define Om_Language_Operation_PairOperation_GetName_()