35 template<
bool IsConst = true>
48 template<
typename ScelNameIterator>
54 std::string
name()
const override;
91 template<
bool IsConst = true>
106 std::string
name()
const override;
147 template<
bool IsConst = true>
159 std::string
name()
const override;
InputEnumIterator< Supercell, false > m_end
ScelEnumT(PrimClex &primclex, const jsonParser &input)
Construct with PrimClex and JSON settings.
CASM::EnumInterfaceBase * make_ScelEnum_interface()
static int run(PrimClex &primclex, const jsonParser &kwargs, const Completer::EnumOption &enum_opt)
ScelEnumByPropsT< true > ConstScelEnumByProps
InputEnumerator< Supercell, false > m_enum
ScelEnumT< false > ScelEnum
static const std::string enumerator_name
InputEnumIterator< Supercell, false > m_it
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
Data structure for holding supercell enumeration properties.
Supercell * at_step(step_type n) override
Implements at_step.
std::unique_ptr< SupercellEnumerator< Lattice > > m_lattice_enum
Base class for generic use of enumerators that may be accessed through the API.
Enumerate over Supercell.
Represents a supercell of the primitive parent crystal structure.
std::vector< Supercell * > m_scelptr
ScelEnumT< true > ConstScelEnum
static const std::string interface_help
static const std::string enumerator_name
ScelEnumByPropsT & operator=(const ScelEnumByPropsT &)=delete
static const std::string enumerator_name
void increment() override
Implements increment over supercells.
void increment() override
Implements increment over all occupations.
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
ScelEnumByPropsT(PrimClex &primclex, const ScelEnumProps &enum_props, bool existing_only=false)
Construct with PrimClex and ScelEnumProps settings.
ScelEnumT & operator=(const ScelEnumT &)=delete
ScelEnumByNameT(PrimClex &primclex, std::initializer_list< std::string > scelnames)
Construct with PrimClex and ScelEnumProps settings.
Base class for implementing specialized random access enumerators.
PrimClex is the top-level data structure for a CASM project.
SupercellEnumerator< Lattice >::const_iterator m_lat_it
Enumerate over Supercell.
ScelEnumByPropsT< false > ScelEnumByProps
Iterators used with SupercellEnumerator.
bool _include(const Lattice &lat) const
Check for existing supercells.
ScelEnumByNameT< true > ConstScelEnumByName
SupercellEnumerator< Lattice >::const_iterator m_lat_end
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
Enumerate over Supercell.
ScelEnumByNameT< false > ScelEnumByName