\begin{ccRefFunctionObjectConcept}{AlgebraicStructureTraits::Divides} \ccDefinition \ccc{AdaptableBinaryFunction}, returns true if the first argument divides the second argument. Integral division (a.k.a. exact division or division without remainder) maps ring elements $(n,d)$ to ring element $c$ such that $n = dc$ if such a $c$ exists. In this case it is said that $d$ divides $n$. This functor is required to provide two operators. The first operator takes two arguments and returns true if the first argument divides the second argument. The second operator returns $c$ via the additional third argument. \ccRefines \ccc{AdaptableBinaryFunction} \ccTypes \ccNestedType{result_type} { Type convertible to \ccc{bool}.} \ccGlue \ccNestedType{first_argument} { Is \ccc{AlgebraicStructureTraits::Type}.} \ccGlue \ccNestedType{second_argument} { Is \ccc{AlgebraicStructureTraits::Type}.} \ccOperations \ccCreationVariable{divides} \ccThree{xxxxxxxxxxx}{xxxxxxxxxxx}{} \ccMethod{result_type operator()(first_argument_type d, second_argument_type n);} { Computes whether $d$ divides $n$. } \ccMethod{result_type operator()( first_argument_type d, second_argument_type n, AlgebraicStructureTraits::Type& c);} { Computes whether $d$ divides $n$. Moreover it computes $c$ if $d$ divides $n$, otherwise the value of $c$ is undefined. } %\ccHasModels \ccSeeAlso \ccRefIdfierPage{AlgebraicStructureTraits}\\ \ccRefIdfierPage{AlgebraicStructureTraits::IntegralDivision} \end{ccRefFunctionObjectConcept}