Size: a a a

2020 July 23

AF

Aidar Fattakhov in supapro.cxx
Danya
std::initilizer_list<int>
Это и не он
источник

AF

Aidar Fattakhov in supapro.cxx
Просто braced list
источник

Д

Дмитрий in supapro.cxx
Привет всем. Хочу спросить: Можно ли к
template
конструктору применить
deduction guides
? Чтобы
const char *
выводился в
std::string
. Сам класс не шаблонный, только его конструктор
источник

IZ

Ilia Zviagin in supapro.cxx
Дмитрий
Привет всем. Хочу спросить: Можно ли к
template
конструктору применить
deduction guides
? Чтобы
const char *
выводился в
std::string
. Сам класс не шаблонный, только его конструктор
К конструктору нет смысла применять DG, они применяются К ШАБЛОННЫМ КЛАССАМ только.
источник

IZ

Ilia Zviagin in supapro.cxx
Дмитрий
Привет всем. Хочу спросить: Можно ли к
template
конструктору применить
deduction guides
? Чтобы
const char *
выводился в
std::string
. Сам класс не шаблонный, только его конструктор
const char*  и так приведётся к const std::string&
источник

Д

Дмитрий in supapro.cxx
Ilia Zviagin
К конструктору нет смысла применять DG, они применяются К ШАБЛОННЫМ КЛАССАМ только.
Спасибо за ответ
источник

Д

Дмитрий in supapro.cxx
Ilia Zviagin
const char*  и так приведётся к const std::string&
Не совсем понял при каких условиях

template<typename T>
obj(T &&  value)
{
 
}


obj(const std::string &)
{
 
}
obj tmp("val"); -> obj(T &&  value) вызывается
источник

AF

Aidar Fattakhov in supapro.cxx
"val" это const char[4]
источник

AK

Anton Kviatkovskii in supapro.cxx
Дмитрий
Не совсем понял при каких условиях

template<typename T>
obj(T &&  value)
{
 
}


obj(const std::string &)
{
 
}
obj tmp("val"); -> obj(T &&  value) вызывается
Если б он вызывался - у тебя б был ambiguous call
источник

IZ

Ilia Zviagin in supapro.cxx
Дмитрий
Не совсем понял при каких условиях

template<typename T>
obj(T &&  value)
{
 
}


obj(const std::string &)
{
 
}
obj tmp("val"); -> obj(T &&  value) вызывается
А это вот ты что такое написал -то?
источник

AK

Anton Kviatkovskii in supapro.cxx
Зачем тебе второй то конструктор?
источник

Д

Дмитрий in supapro.cxx
Да, но в данном примере не суть, ведь  тоже самое:
const char * msg = new char[1010];
obj o( msg);
источник

AF

Aidar Fattakhov in supapro.cxx
Дмитрий
Да, но в данном примере не суть, ведь  тоже самое:
const char * msg = new char[1010];
obj o( msg);
Почти
Только тут const char* и другая велью категория
источник

IZ

Ilia Zviagin in supapro.cxx
Дмитрий
Не совсем понял при каких условиях

template<typename T>
obj(T &&  value)
{
 
}


obj(const std::string &)
{
 
}
obj tmp("val"); -> obj(T &&  value) вызывается
Ну, правильно вызывается, убери нафиг шаблонный конструктор либо напиши его так, чтобы он работал
источник

AF

Aidar Fattakhov in supapro.cxx
Aidar Fattakhov
Почти
Только тут const char* и другая велью категория
А, или та же хм
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Дмитрий
Не совсем понял при каких условиях

template<typename T>
obj(T &&  value)
{
 
}


obj(const std::string &)
{
 
}
obj tmp("val"); -> obj(T &&  value) вызывается
obj tmp(std::string("val")); -> obj(T &&  value) вызывается
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
obj tmp(std::string("val")); -> obj(T &&  value) вызывается
const std::string t;
obj tmp(t); -> obj(const string&  value)
источник

Д

Дмитрий in supapro.cxx
Есть небольшая задача -  напилить TLV encoder для простых типов, но string нужно уметь тоже принимать, шаблонный конструктор принимает все интегральные типы и дальше с ними работает, а со строкой немного другая логика, поэтому хотел так разделить
источник

M

Max in supapro.cxx
Что-то я туплю, а если я из функции, возвращающей string делаю std::move, мне эту функцию во время присвоения тоже в std::move обернуть надо?
источник

Д

Дмитрий in supapro.cxx
Я могу конечно перегрузить для const char * и std::string
источник