Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
std::string text = config().getString("Group.ValueText"); // text == "Hello world"
int value = config().getInt("Group.IntValue"); // value == 123
auto text = config().value("Group.ValueText", "Some default text");
auto int = config().value("Group.IntValue", 100500);
string text = config().value("Group.ValueText");
int integ = config().value("Group.IntValue");
template <typename T>
T Config::value(const std::string &key, const T &defValue);
value(key, (char) 1), это получается более громоздко, чем charValue(key). К тому же приведение типов может сработать очень неочевидно и привести к неожиданным последствиям, а в коде будет выглядеть вполне правдоподобно. Ярким пример тому — функция QString::arg, значение которой может разительно изменяться в зависимости от того, передали вы 'x' или QChar('x'). Поэтому рассматривать перегрузку метода как панацею не стоит. auto intA = config().value(«Group.IntValue», 100500);
//Все довольно таки просто:
//config().value(«Group.IntValue», 100500) - вернет int, в соотв. с типом 2ой переменной
//при инициализации intA примет тип rvalue, то есть int
//данная декларация аналогична
int intA = config().value(«Group.IntValue», 100500);
const std::string& NameValueCollection::get(const std::string& name, const std::string& defaultValue) const
{
const std::string& NameValueCollection::get(
const std::string& name,
const std::string& defaultValue) const
{
о модулях XML, ZIP, Data, Net
создании высокопроизводительных серверов на POCO
Portable Components, вспомогательные средства разработки ПО