Hello,
did you consider using some c++11 features? You could rewrite your code using something like
void FillData(const QVector<QString>& strings)
{
for(const auto& string : strings)
{
std::cout << string.toStdString() << std::endl;
}
}
...
FillData({"string1", "string2", "string3"});
void FillData(const QVector<QString>& strings)
{
for(const auto& string : strings)
{
std::cout << string.toStdString() << std::endl;
}
}
...
FillData({"string1", "string2", "string3"});
To copy to clipboard, switch view to plain text mode
or better using an initializer list:
void FillData1(std::initializer_list<QString> strings)
{
for(const auto& string : strings)
{
std::cout << string.toStdString() << std::endl;
}
}
...
FillData1({setting1, setting2, setting3});
void FillData1(std::initializer_list<QString> strings)
{
for(const auto& string : strings)
{
std::cout << string.toStdString() << std::endl;
}
}
...
QString setting1 = "string1";
QString setting2 = "string2";
QString setting3 = "string3";
FillData1({setting1, setting2, setting3});
To copy to clipboard, switch view to plain text mode
If you want to limit the number of settings to at most 2, you could also use
void FillData2(const std::array<QString,2>& strings)
{
for(const auto& string : strings)
{
std::cout << string.toStdString() << std::endl;
}
}
...
FillData2({setting1});
FillData2({setting1, setting2});
FillData2({setting1, setting2, setting3}); // Error: too many arguments! (only 2 allowed)
void FillData2(const std::array<QString,2>& strings)
{
for(const auto& string : strings)
{
std::cout << string.toStdString() << std::endl;
}
}
...
FillData2({setting1});
FillData2({setting1, setting2});
FillData2({setting1, setting2, setting3}); // Error: too many arguments! (only 2 allowed)
To copy to clipboard, switch view to plain text mode
To use it with Qt5 add
CONFIG += c++11
CONFIG += c++11
To copy to clipboard, switch view to plain text mode
to your .pro file.
With c++11 initializer lists supported by Qt5 containers I personally prefer using initializer lists instead something like
QStringList() << "string1" << "string2" << ...;
To copy to clipboard, switch view to plain text mode
Best regards
ars
Bookmarks