@ProCxx

Страница 2270 из 2477
isnullxbh
08.08.2018
11:30:15
На основании?

Max
08.08.2018
11:30:17
Объясните
Копирование буфера всё равно будет, по сути это то же самое как из юзерспейса её дергать. Обычно в таких задачах с железом общаются более персонализировано.

Vitaly
08.08.2018
11:31:23
Google
Andre
08.08.2018
11:31:29
я сейчас проверил, юнистд есть

Max
08.08.2018
11:31:37
энивэй, <linux/unistd.h> всё равно доджен быть доступен. Это странно, что его нет. Я бы сначала разобрался с этим.

Ilia
08.08.2018
11:31:37
На основании?
Бессмысленност дальнейших разговоров

isnullxbh
08.08.2018
11:32:23
Бессмысленност дальнейших разговоров
Вы судите о бессмысленности в качестве кого?)

Andre
08.08.2018
11:32:27
комманд лайн тулз же ставил?
xcode-select --install есличо

isnullxbh
08.08.2018
11:32:42
xcode-select --install есличо
Спасибо, попробую!

Vitaly
08.08.2018
11:32:55
Вы судите о бессмысленности в качестве кого?)
Прошу прекратить флуд не по теме чата. Если есть вопросы к кому-то из админов, напиши им в ЛС.

Max
08.08.2018
11:38:00
Причем когда я подключаю sys/socket.h - он не ругается ) Типа, сокет открыл, а читать, писать и закрывать (в не)его не нужно)
Работа с сокетами? Используй #include<linux/net.h> #include<linux/socket.h> #include<linux/in.h> и их sock_sendmsg . Вообще, тянуть юзерспейсные хедеры в ядро — моветон.

Google
isnullxbh
08.08.2018
11:43:31
sys_close
Спасибо!

Combot
08.08.2018
11:43:31
isnullxbh (0) увеличил репутацию Max (1)

Nik
08.08.2018
12:08:19
https://habr.com/post/419579/ Что думаете на счет использования подобных вещей в реальных проектах?

Alexander
08.08.2018
12:16:34
Ilia
08.08.2018
12:16:56
https://habr.com/post/419579/ Что думаете на счет использования подобных вещей в реальных проектах?
Умилили эти размышления: Хотелось бы также сказать о некоторых особенностях данного решения. Visual Studio инстанцирует шаблонны в месте использования, что означает что сама функция перегрузки должна быть объявлена до места использования оператора, но может быть объявлена после декларации класса OP_IN_LVAL. GCC в свою очередь инстанцирует шаблон в месте объявления (когда встречает использование само собой), что означает, что перегруженный оператор должен быть объявлен до того как декларируется класс OP_IN_LVAL. Если не совсем понятно о чём речь, то вот пример. cpp.sh/5jxcq В этом коде я всего лишь перенёс перегрузку оператора in ниже декларации класса OP_IN_LVAL и он перестал компилироваться в GCC (если только не компилировать с флагом -fpermissive), но успешно компилируется в Visual Studio.

Это не стандартный сахар - отношусь против
Я был бы за, но нахера ж мне мап каждый раз создавать?

Friedrich
08.08.2018
12:22:10
Умилили эти размышления: Хотелось бы также сказать о некоторых особенностях данного решения. Visual Studio инстанцирует шаблонны в месте использования, что означает что сама функция перегрузки должна быть объявлена до места использования оператора, но может быть объявлена после декларации класса OP_IN_LVAL. GCC в свою очередь инстанцирует шаблон в месте объявления (когда встречает использование само собой), что означает, что перегруженный оператор должен быть объявлен до того как декларируется класс OP_IN_LVAL. Если не совсем понятно о чём речь, то вот пример. cpp.sh/5jxcq В этом коде я всего лишь перенёс перегрузку оператора in ниже декларации класса OP_IN_LVAL и он перестал компилироваться в GCC (если только не компилировать с флагом -fpermissive), но успешно компилируется в Visual Studio.
А чем умилили? Ну, оно так и есть, студия тут не следует стандарту.

У них там всё грустно с этой точки зрения, но вроде какие-то подвижки были

Ilia
08.08.2018
12:24:25
А чем умилили? Ну, оно так и есть, студия тут не следует стандарту.
А что , стандарт у нас говорит, КОГДА Надо инстанциировать шабон?

Friedrich
08.08.2018
12:24:49
А что , стандарт у нас говорит, КОГДА Надо инстанциировать шабон?
Ну, он говорит, в каких случаях должна быть ошибка компиляции, а в каких не должно быть.

Ilia
08.08.2018
12:25:20
А чем умилили? Ну, оно так и есть, студия тут не следует стандарту.
Также уверен, что автор путает объявление и определение.

Friedrich
08.08.2018
12:25:23
И, насколько я помню, gcc в этом случае действует по стандарту, а VS из-за особенностей реализации (которые автор передал правильно) некоторые ошибки пропускает.

Friedrich
08.08.2018
12:26:10
А, окей, тут он неправильно написал.

Ilia
08.08.2018
12:28:32
Хабр он такой хабр...

Дед Пегас
08.08.2018
12:39:58
Услуги по бану. Недорого.

Igor
08.08.2018
12:41:35
Цитата из K&R, приложение A.6.3 про преобразование целых чисел в вещественные Если результат преобразования выходит за границы диапазона допустимых значений, то результат неопределен У float потолок - 3.4е38, у uint64 - 9.2е18, у uint128 - 1.7e38 Я что-то упускаю, или это "задел на будущее" просто такой?

Friedrich
08.08.2018
12:49:46
K&R наверняка устарели, надо смотреть актуальный стандарт.

Alex Фэils?︙
08.08.2018
13:00:14
А где твой создатель?

Александр
08.08.2018
13:28:41
Вопрос. Компилю под линукс (допустим, pure C), получаю в зависимостях libc версии GLIBC_X.Y. Копирую приложение на другую машину со старой системой - получаю ошибку запуска (очевидно, почему). Вопрос: как решают подобные проблемы? 1) Статическая линковка libc кажется стрёмной, да и не получилось с cmake договориться. 2) Снизить требуемую версию glibc - как? 3) Таскать с собой зависимости

Google
Александр
08.08.2018
13:32:24
Не совсем правильно выразился.. проблема у меня одна, я вижу три варианта решения. Прокомментировал их, но может есть и другие? И какое решение лучше?

Egor
08.08.2018
13:32:49
я дистр сменил

Igor
08.08.2018
13:37:33
Как-то странно, диапазон значений float выше чем у int же ...
Ну вот да, меня это тоже сильно смутило)

Aidar
08.08.2018
13:38:26
достаточно не менять мажорную версию

Александр
08.08.2018
13:39:06
у тебя на старой версии другая мажорная версия?
Скажем так, компилю я у себя с новой супер-продвинутой версией (2.17), на старье 2.12 (у клиента). Раньше я решал проблему "иди обновляй дистр", но сейчас внезапно захотелось пофиксить

ух ты, именная статья

Aidar
08.08.2018
13:40:00
ну обновляй дистр

Vitaly
08.08.2018
13:40:01
это извращение
Нет, поэтому и придумали Flatpak.

Если коротко, то либо собирай по пакету для каждого дистрибутива, либо используй Flatpak.

Aidar
08.08.2018
13:40:32
ну обновляй дистр
это единственно верное решение кстати

Александр
08.08.2018
13:40:33
скажем так - приложение не open-source, поэтому распространять сорцы не вариант

Vitaly
08.08.2018
13:41:00
скажем так - приложение не open-source, поэтому распространять сорцы не вариант
Flatpak ваш выбор. Ещё и проблем с репозиторием и обновлениями у пользователей не будет.

Google
Александр
08.08.2018
13:41:25
уже читаю

Aidar
08.08.2018
13:42:15
Flatpak ваш выбор. Ещё и проблем с репозиторием и обновлениями у пользователей не будет.
и пользователи будут считать что они запускают проприетарный мусор типа драйверов HP

Vitaly
08.08.2018
13:42:42
и пользователи будут считать что они запускают проприетарный мусор типа драйверов HP
Пользователи Linux в большинстве случаев и не будут ставить себе проприетарщину в систему если для неё есть OSS альтернатива в репозиториях.

С Flatpak же всё проще. Там есть рантаймы и контейнерная изоляция. Можно максимально урезать права для проприетарного приложения, выдав доступ лишь к конкретным каталогам и адресам. Это огромный плюс. Также установка Flatpak пакета в систему не требует прав суперпользователя.

Александр
08.08.2018
13:47:20
еще такая есть штука https://github.com/wheybags/glibc_version_header
о, об этом я задумывался, сейчас тоже почитаю, спасибо

Ilia
08.08.2018
13:55:57
достаточно не менять мажорную версию
Ну и плюс бинарная совместимость ABI есть иногд ана Linux

Sergey
08.08.2018
15:27:33
подскажите плз такой момент. Есть такой код shared_ptr<...> ptr = std::move(another_shared_ptr) при многопоточности могут быть проблемы с ptr в данном случае, если не залочить?

Александр
08.08.2018
15:27:56
не будет проблем. не важно, с move или без

Sergey
08.08.2018
15:28:44
нет, я только сами shared_ptr трогаю

Aidar
08.08.2018
15:29:01
ptr ты еще не сконструировал так что хз как ты его потрогаешь

another трогать ты не должен без синхронизации

Если там есть третий указатель то его можешь трогать когда угодно

Sergey
08.08.2018
15:30:06
да, понял, спасибо)

Aidar
08.08.2018
15:30:57
Учитывай что атомарен там только счетчик а не то что лежит по указателю

Sergey
08.08.2018
15:33:23
Учитывай что атомарен там только счетчик а не то что лежит по указателю
да, я вот за этот момент переживал) видел хорошие примеры, которые это показывают

Google
Dmitry
08.08.2018
17:17:28
Читать пробовали?
Пробовал. Статический полиморфизм без CRTP лучше чем с ним. Имеется в виду что то вроде ConcreteAlgoritm = GenericAlgorithm<Policy>?

Constantine
08.08.2018
17:47:03
Пробовал. Статический полиморфизм без CRTP лучше чем с ним. Имеется в виду что то вроде ConcreteAlgoritm = GenericAlgorithm<Policy>?
Там долгая история, но в таких случаях всегда есть простой способ - давайте разберем пример, в котором CRTP - то, что доктор прописал

Dmitry
08.08.2018
17:48:35
Там долгая история, но в таких случаях всегда есть простой способ - давайте разберем пример, в котором CRTP - то, что доктор прописал
Например какой то жирный shared state который можно задешево шарить как protected без нарушения инкапсуляции снаружи.

Антипример - внедрение (возможно) stateful политики и пляски с бубнами наподобие allocator_traits::propagate_on*.

Маленький простой CRTP - struct Foo : intrusive_counted<Foo>.

Alex Фэils?︙
08.08.2018
18:16:18
был бы тут беркус, он бы предложил для примера реализацию SSL в бисте

Maksym
08.08.2018
18:16:48
Alex Фэils?︙
08.08.2018
18:21:12
да, сел в ржавую машину

просто устал от чатов, и вроде остался только в растоманских чатах

Alexander
08.08.2018
18:30:10
Читаем правила чата

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