Size: a a a

2020 July 25

UT

Unknown T. in supapro.cxx
Dimmu Borgir
еще такой вопрос возник. почему оператор индексирование ссылку возврашает?
чтобы можно было менять элемент, находящийся по этому индексу?
источник

DB

Dimmu Borgir in supapro.cxx
Unknown T.
чтобы можно было менять элемент, находящийся по этому индексу?
понятно спасибо)
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Если есть wchar_t w, писать (&w).mbrtowc(...) ? Бред же
источник

D

Danya in supapro.cxx
Artöm Bakri Al-Sarmini
Если есть wchar_t w, писать (&w).mbrtowc(...) ? Бред же
Можно, но не нужно
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Это я к тому, что в условном шарпе методы расширения явно помечаются как методы расширения, а глобальный неконтролируемый ufcs имеет потенциал превратить простой код в непонятное говно, поэтому вангую был бы запрещен всеми возможными стайлгайдами
источник

D

Danya in supapro.cxx
Artöm Bakri Al-Sarmini
Это я к тому, что в условном шарпе методы расширения явно помечаются как методы расширения, а глобальный неконтролируемый ufcs имеет потенциал превратить простой код в непонятное говно, поэтому вангую был бы запрещен всеми возможными стайлгайдами
А в каких языках вообще есть ufcs? D?
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Только о нем слышал
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Но там явно и стдлиба разрабатывалась с оглядкой на эту фичу
источник

UT

Unknown T. in supapro.cxx
Вики говорит, ещё Nim. Но я сам только что узнал про ufcs от вас, если что
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Как в функциональных языках в функциях по обработке коллекций аргументами идет сначала функтор, потом коллекция, для удобства каррирования. В тех же плюсах наоборот
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
В общем в ufcs я вижу больше потнциальных багов, чем пользы
источник

J

Jefferson in supapro.cxx
Всем привет, возник вопрос.
Чем отличается:
void foo(string str) { ... } 
int main()
{
   string test = "test";
   foo(test);
}

От:
void foo(const string& str) { ... } 
int main()
{
   string test = "test";
   foo(test);
}
источник

J

Jefferson in supapro.cxx
Все понятно, благодарю
источник

J

Jefferson in supapro.cxx
Jefferson
Всем привет, возник вопрос.
Чем отличается:
void foo(string str) { ... } 
int main()
{
   string test = "test";
   foo(test);
}

От:
void foo(const string& str) { ... } 
int main()
{
   string test = "test";
   foo(test);
}
Вопрос из той же серии. В первом случае создастся ещё один обьект, во втором вернётся ссылка на уже созданный. Я правильно понимаю?
string foo()
{
   string test = "test";
   return test;
}


string& foo()
{
   string test = "test";
   return test;
}
источник

AF

Aidar Fattakhov in supapro.cxx
Во втором случае ты получишь dangling reference
источник

DP

Denis Paukaev in supapro.cxx
Jefferson
Вопрос из той же серии. В первом случае создастся ещё один обьект, во втором вернётся ссылка на уже созданный. Я правильно понимаю?
string foo()
{
   string test = "test";
   return test;
}


string& foo()
{
   string test = "test";
   return test;
}
Во втором минус нога
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Jefferson
Вопрос из той же серии. В первом случае создастся ещё один обьект, во втором вернётся ссылка на уже созданный. Я правильно понимаю?
string foo()
{
   string test = "test";
   return test;
}


string& foo()
{
   string test = "test";
   return test;
}
Да
источник

W

Wild_Wind in supapro.cxx
Из стринг вьюшки, C-sylle null-terminated строку никак не получить?
Типа:
constexpr static std::string_view str="ABC";
getenv(reinterpret_cast<const char*>(str+'\0'));

// это не работает
источник

Е

Егор in supapro.cxx
Wild_Wind
Из стринг вьюшки, C-sylle null-terminated строку никак не получить?
Типа:
constexpr static std::string_view str="ABC";
getenv(reinterpret_cast<const char*>(str+'\0'));

// это не работает
так string_view::data вернет нулл-терминейтед в твоём коде
источник

W

Wild_Wind in supapro.cxx
Егор
так string_view::data вернет нулл-терминейтед в твоём коде
Facepalm.
Я забыл про data...
источник