40 Label(
const std::string &val) :
std::string(val), m_id(0), m_lang() {};
41 Label(std::string &&val) :
std::string(
std::move(val)), m_id(0), m_lang() {};
42 Label(
const Label &other) :
std::string(other), m_id(other.m_id), m_lang(other.m_lang) {};
43 Label(
Label &&other) :
std::string(
std::move(other)), m_id(other.m_id), m_lang(
std::move(other.m_lang)) {};
47 Label &
operator=(
const std::string &val) { std::string::operator=(val);
return *
this; };
48 Label &
operator=(std::string &&val) { std::string::operator=(std::move(val));
return *
this; };
50 Label &
operator=(
const Label &to_copy) { std::string::operator=(to_copy); m_id = to_copy.m_id; m_lang = to_copy.m_lang;
return *
this; };
51 Label &
operator=(
Label &&to_move) { std::string::operator=(std::move(to_move)); m_id = to_move.m_id; m_lang = std::move(to_move.m_lang);
return *
this; };
56 unsigned int id()
const {
return m_id; };
57 Label &
id(
unsigned int val) { m_id = val;
return *
this; };
60 bool hasLang()
const {
return m_lang.has_value(); };
61 const std::optional<std::string> &
lang()
const {
return m_lang; };
62 Label &
lang(
const std::nullopt_t&) { m_lang.reset();
return *
this; };
63 Label &
lang(
const std::string &val) { m_lang = val;
return *
this; };
64 Label &
lang(std::string &&val) { m_lang = std::move(val);
return *
this; };
65 Label &
lang(
const std::optional<std::string> &val) { m_lang = val;
return *
this; };
66 Label &
lang(std::optional<std::string> &&val) { m_lang = std::move(val);
return *
this; };
72 Label(xmlpp::Node &node);
73 void setXMLElement(xmlpp::Element &elem)
const;
79 std::optional<std::string> m_lang;