I have a QueryField and Select helper classes used to construct SQL statements:
class QueryField { public: QueryField(std::string_view column) : m_column{ column } { } QueryField(std::string_view column, std::string_view alias) : m_column{ column } , m_alias{ alias } { } private: std::string m_column; std::string m_alias; }; class Select { public: Select(std::initializer_list<QueryField> fields) { for (auto & field : fields) { m_fields.emplace_back(std::move(field)); } } private: std::vector<QueryField> m_fields; }; as seen from the code above Select is a collection of QueryField objects that can initialized like this:
Select{ QueryField{ "up.audit_option" "option" }, QueryField("uep.success"), QueryField("uep.failure") }; is it possible to eliminate the need of specifying QueryField explicitly and initialize Select object as follows?
Select{ { "up.audit_option" "option" }, "uep.success", "uep.failure" };