@ProCxx

Страница 2349 из 2477
Дмитрий
14.09.2018
19:13:23
А то class::f< не так парсит

Igor
14.09.2018
19:13:35
Что значит weak symbol?
https://en.wikipedia.org/wiki/Weak_symbol символ который можно подменить другим при линковке.

Дмитрий
14.09.2018
19:14:05
Google
Ilia
14.09.2018
20:49:17
UB. Функция объявлена как не void, но не возвращает значение.

Sergey
14.09.2018
20:58:33
Есть вопрос спецам STL std::pair - это простой темплэйт структуры template ... struct pair { .... _Ty1 first; _Ty2 second; }; если я делаю так: std::pair<int,char[5]> x{1,{'k','u'}}; имеем error C2440: 'initializing': cannot convert from 'initializer list' to 'std::pair<int,char [5]>' делаю простой тест: struct S { int a; char b[5]; }; S x {1,{'k','u'}}; всё ок! Кто может объяснить в чём проблема?

Sergey
14.09.2018
21:04:04
VS2017 вот код , можно прям вставить в пустой файл и компильнуть ——————— #include <map> struct S { int a; char b[5]; }; S x1 {1,{'k','u'}}; std::pair<int,char[5]> x2 {1,{'k','u'}}; ———————

gcc даёт то же самое: error: no matching function for call to ‘std::pair<int, char [5]>::pair(<brace-enclosed initializer list>)’

Denis
14.09.2018
21:10:09
потому что в твоей структуре нет конструктора, а в пейре - есть

Sergey
14.09.2018
21:18:44
И точно, проверил, так и есть! Т.е. наличие конструктора запрещает стандартную С-style инициализацию? Только чепез конструктор? Круто, сенкс.

Тогда след вопрос. Как мне сделать чтоб pair, у которого second это char[] хавал любые строки что то типа char* s = "kuku"; std::pair<int,char[5]> x2 (1,s); как добиться чего-то похожего?

Sergey
14.09.2018
21:31:09
это понятно. Но это не принимается. Есть char[]

Побитый
14.09.2018
21:42:56
Vladimir
14.09.2018
21:47:30
Правильно надо паир написать Std::pair<int, char*> x2(1, s)

Sergey
14.09.2018
21:48:03
не - это не годится, мне нужно место под строку где то салоцировать

Google
Sergey
14.09.2018
21:48:15
короче решение такое: struct my_pair : std::pair<int,char[5]> { my_pair(int key, char* str) { first = key; memcpy(second, str, 5); } }

Alexander
14.09.2018
21:48:47
Sergey
14.09.2018
21:49:20
только что проверил

Vladimir
14.09.2018
21:49:25
Ппц

Так не надо делать!

Побитый
14.09.2018
21:52:20
короче решение такое: struct my_pair : std::pair<int,char[5]> { my_pair(int key, char* str) { first = key; memcpy(second, str, 5); } }
Откуда требование на char[], если ты в итоге свой класс сделал?

Sergey
14.09.2018
21:52:23
что же в этом криминального?

есть требование на char - не обсуждается

Побитый
14.09.2018
21:52:50
Делай string и не парь мозги

А в твоём примере представь, что пришла строка с размером меньше 5...

Alexander
14.09.2018
21:53:11
ничего плохого в таком коде не вижу. По крайней мере админка чата единогласно одобряет

Sergey
14.09.2018
22:01:52
А в твоём примере представь, что пришла строка с размером меньше 5...
Это же просто пример quick and dirty. Ясно что будут проверки и т п

Лдано - всем спасибо за помощь. Утро вечера мудреней

Vladimir
14.09.2018
22:49:10
короче решение такое: struct my_pair : std::pair<int,char[5]> { my_pair(int key, char* str) { first = key; memcpy(second, str, 5); } }
Std:: pair не работает с массивом Решение такое ты или оборачиваешь char[5] в структуру и ставишь в паир или и что лучше используй array<char,5> гуд лак. Но так как написал через наследие не надо.

Subdust
15.09.2018
03:59:32
А можете посоветовать книгу по дизайну программ, их архитектуре? Чтоб не относителньо c++, а в целом

Всякие подходы к программированию, плюсы минусы. Фунциональное ООП

Извините если я не совсем по адресу написал

Denis
15.09.2018
04:36:09
Всякие подходы к программированию, плюсы минусы. Фунциональное ООП
если функциональное, то теорию категорий Бартоша Милевски

Google
Denis
15.09.2018
06:16:58
нужно. Теория категорий умеет ждать

Дмитрий
15.09.2018
06:17:19
Vladislav
15.09.2018
06:26:46
Всякие подходы к программированию, плюсы минусы. Фунциональное ООП
вот, неплохо мозги вправляет (но на практике неприменимо, к сожалению) https://www.manning.com/books/type-driven-development-with-idris

Denis
15.09.2018
06:31:46
почему любой разговор всегда приводит к идрису

Vladislav
15.09.2018
06:32:58
аналог закона Годвина, но для программистов

Evgeniy
15.09.2018
06:37:16
почему любой разговор всегда приводит к идрису
потому что в итоге все будут писать на идрисе

или просто на расте но с завтипами

Denis
15.09.2018
06:37:38
потому что в итоге все будут писать на идрисе
я вот так чото все и не могу добраться до него, видимо пора

это как китайский

Evgeniy
15.09.2018
06:39:13

Страница 2349 из 2477