1 #ifndef CASM_ConfigDoFCompare
2 #define CASM_ConfigDoFCompare
13 class ConfigDoFCompare {
31 template<
typename ConfigDoFIsEquivalentType>
46 return m_f->is_less();
54 return m_f->is_less();
62 return m_f->is_less();
73 template<
typename ConfigDoFIsEquivalentType,
typename ...Args>
75 return ConfigDoFCompare(notstd::make_unique<ConfigDoFIsEquivalentType>(std::forward<Args>(args)...));
Wrapper class for generic less than comparison of ConfigDoF.
const ConfigDoF & configdof() const
const Access the DoF
bool operator()(const Configuration &other) const
Return config < other.
bool operator()(const PermuteIterator &A) const
Return config < A*config.
ConfigDoFCompare make_dof_compare(Args &&...args)
A container class for the different degrees of freedom a Configuration might have.
notstd::cloneable_ptr< DoFIsEquivalent::ConfigDoFIsEquivalentBase > m_f
ConfigDoFCompare(std::unique_ptr< ConfigDoFIsEquivalentType > f)
Construct a ConfigDoFCompare object for a particular DoF type.
bool operator()(const ConfigDoF &other) const
Return config < other.
bool operator()(const PermuteIterator &A, const PermuteIterator &B) const
Return A*config < B*config.
A Configuration represents the values of all degrees of freedom in a Supercell.