@ProCxx

Страница 1031 из 2477
Anatoly
30.06.2017
10:14:25
был напуган

reagentoo
30.06.2017
10:14:31
зачем плюсы накрепляются?

к каждой лямбде

Alex Фэils?︙
30.06.2017
10:14:43
Google
reagentoo
30.06.2017
10:15:38
интересно, это полнолстью констекспровый список инициализации или нет

Anatoly
30.06.2017
10:15:50
вот если рассматривать +[]{return 1;}

Alex Фэils?︙
30.06.2017
10:18:19
а что разве без плюсов - не указатель?
да. Оно имеет тим decltype(auto)

Anatoly
30.06.2017
10:18:55
в данном случае используется вот это 6 The closure type for a non-generic lambda-expression with no lambda-capture has a conversion function to pointer to function with C++ language linkage (10.5) having the same parameter and return types as the closure type’s function call operator.

+ применяется к указателю int (*)()

reagentoo
30.06.2017
10:19:58
да. Оно имеет тим decltype(auto)
неопределённый тип, прямо как квантовая частица?)

Anatoly
30.06.2017
10:20:15
в данном случае определенный

decltype(+[]{return 1;}) == decltype(int(*)())

Александр
30.06.2017
10:21:56
> {+[]{return 72;},+[]{return 101;}} что тут происходит?
каст к int (*)(). вероятно, из-за лагов интернета, моё сообщение дойдёт хз когда

reagentoo
30.06.2017
10:22:09
Anatoly
30.06.2017
10:22:52
если без + уникальный тип лямбды

Google
reagentoo
30.06.2017
10:24:20
если без + уникальный тип лямбды
но он кастится неявно в тип указателя на функцию всегда

короче без плюсиков плюсики не могут

Anatoly
30.06.2017
10:24:54
почему всегда?

у VS2015 +[]{return 1;} не переваривает

Александр
30.06.2017
10:26:50
хреновый VS2015

Anatoly
30.06.2017
10:27:31
я передам :)

Anatoly
30.06.2017
10:29:38
int(*l[])() = { ([]() {return 0; }) , []() {return 1; } };

вот это студия кушает

Berkus
30.06.2017
10:29:58
вот это студия кушает
студия кушает клей

Anatoly
30.06.2017
10:30:15
srsly?
век воли не видать

Berkus
30.06.2017
10:30:23
окай

reagentoo
30.06.2017
10:30:28
попытался нащупать с какой версии работает — оказывается очень давно. gcc-4.6.4 c++0x

Berkus
30.06.2017
10:31:04
век воли не видать
prog.cc:4:28: error: lambda-expression in unevaluated context std::cout « decltype(+[]{return 1;}) == decltype(int(*)()) « std::endl;

Anatoly
30.06.2017
10:31:54
попробуй auto a = +[]() {return 0; }; decltype(a)

вообще говоря, увидев +[]{return 1;} я прифигел

остается вопрос: унарный + можно применять к указателю на функцию? если по стандарту, то может 7 The operand of the unary + operator shall have arithmetic, unscoped enumeration, or pointer type and the result is the value of the argument. Integral promotion is performed on integral or enumeration operands. The type of the result is the type of the promoted operand

Google
Anatoly
30.06.2017
10:35:52
тогда это не extention gcc/clang

Berkus
30.06.2017
10:40:39
если пойнтер - то не экстеншен, но выше ты постил что там conversion operator

это получается implicit conversion to pointer триггерится плюсиком

тогда встает вопрос к гражданину Дроздову почему студия это не жрёт

Andrii
30.06.2017
11:05:28
ребят, кто-то пробовал в мобильную разработку на плюсах? интересует как android, так и ios (возможно, кроссплатформ). знаю, что есть в qt, но хз, как там под ios будет) еще знаю, что теперь visual c++ вполне подходит для разработки кроссплатформенных мобильных приложений, к тому же vs17 так же предоставляет инструменты виртуализации (физический айфон не нужен, получается), по этому вроде как этот вариант ярче кажется, чем qt. что вы думаете по этому поводу? кто-то уже пробовал? поделитесь опытом плес)

Anatoly
30.06.2017
11:09:24
что-то мне подсказывает, что С++ на базе Android NDK оправдывает себя только на очень низком уровне и то если ты получил просадку в производительности, используя рекомендованный Google-ом Android SDK.

если ты хочешь игру замутить, то смотри на Unity, если хочешь что-то социалки смотри в сторону Ionic на базе Cordova или ReactJS. В противном случае, получить конфетку на С++ потребует несоизмеримых затрат по сравнению с другими инструментами

Matway
30.06.2017
11:14:18
ребят, кто-то пробовал в мобильную разработку на плюсах? интересует как android, так и ios (возможно, кроссплатформ). знаю, что есть в qt, но хз, как там под ios будет) еще знаю, что теперь visual c++ вполне подходит для разработки кроссплатформенных мобильных приложений, к тому же vs17 так же предоставляет инструменты виртуализации (физический айфон не нужен, получается), по этому вроде как этот вариант ярче кажется, чем qt. что вы думаете по этому поводу? кто-то уже пробовал? поделитесь опытом плес)
Мы пробовали. У нас написан движок, который позволяет один и тот же C++ код запускать под asm.js/Android/Linux/NaCL/OSX/Windows. Стоило это три-четыре месяца работы. Переписывать приходится всё (например, нельзя использовать NativeActivity на Андроиде - он не на всех девайсах нормально работает, поэтому его надо было переписывать). Плюс добавлять freetype/libogg/OpenSL ES и т.д. код. В общем, это очень дорого.

Antony
30.06.2017
11:18:46
что-то мне подсказывает, что С++ на базе Android NDK оправдывает себя только на очень низком уровне и то если ты получил просадку в производительности, используя рекомендованный Google-ом Android SDK.
Если есть уже готовый С++ код, то проще его перенести на Андройд, чем писать всё с нуля на Java. На прошлой работе с нуля на С++ разрабатывали engine базы данных для поиска по графам. Переносили на Андроид, делали встраиваемой базой. В основном всё было без проблем (ну разве что линкер там абсолютно другой и поведение у него сильно отличается + помучались с boost). Сейчас все патчи для буста уже в upstream, так что прблем быть не должно.

Berkus
30.06.2017
11:19:46
буст собираю под андроид, 1.63 и выше работает хорошо

Anatoly
30.06.2017
11:19:52
Антон, если есть уже код на С++, то, конечно, не рационально его портировать.

Anatoly
30.06.2017
11:22:17
Хотя ребята из Oracle из команды Netbeans для того, чтобы использовать инструменты CLang-а в своей IDE прогнали clang clang-ом, получили AST и написали кодогенератор в Java байт код.

отбросив вариант с JNI

Berkus
30.06.2017
11:23:25
ну JNI довольно мерзкая фигня

Berkus
30.06.2017
11:23:45
как апи он почти неплох, но надо всегда за всем следить, global refs там

я его конечно в удобный c++ завернул и даже выложил этот хелпер на bintray

Andrii
30.06.2017
11:24:46
нет, кода никакого нет еще. приложение совсем простое: есть веб-приложение, а это мобильное приложение просто по сути обертка + несколько функций, которые работают с подкачанными данными, сами функции посредственные, данных не предполагается слишком много. оптимизация от выбора с++, скорее будет незаметна. почему с++? просто из моих собственных предпочтений. мне нравится этот язык, и хотелось опробовать новые инструменты и платформы, но без лишней накладной боли. я так понял, что по сути писать на с++ под андроид можно, но больно. соответсвенно, для моих скромных требований это стрельба из пушки по воробьям, я правильно все понял?)

Berkus
30.06.2017
11:25:45
если писать gui - то больно, следуй советам больших контор - они пишут на плюсах общую портабельную либу с бизнес-логикой, а весь гуй оставляют нативный

Google
Berkus
30.06.2017
11:26:10
как минимум dropbox про это статью накатали пару лет назад

Antony
30.06.2017
11:29:04
нет, кода никакого нет еще. приложение совсем простое: есть веб-приложение, а это мобильное приложение просто по сути обертка + несколько функций, которые работают с подкачанными данными, сами функции посредственные, данных не предполагается слишком много. оптимизация от выбора с++, скорее будет незаметна. почему с++? просто из моих собственных предпочтений. мне нравится этот язык, и хотелось опробовать новые инструменты и платформы, но без лишней накладной боли. я так понял, что по сути писать на с++ под андроид можно, но больно. соответсвенно, для моих скромных требований это стрельба из пушки по воробьям, я правильно все понял?)
Под Андройдом нельзя запустить чистое C++ приложение (если ты не производитель устройств). Под Андройдом можно запускать только Яву, которая вызывает С++. Все простое взаиможействие с UI через Яву идёт. Тоесть если приложение нужно только чтобы UI отрисовать, то просто негде будет применить C++

Arseny
30.06.2017
11:30:05
И взаимодействие между java и c++ довольно мерзкое.

Stanislav
30.06.2017
11:30:16
у тех же qt есть небольшая обертка на жабке

если нужны спицифик фичи платформы, добро пожаловать в жабомир

Admin
ERROR: S client not available

Andrii
30.06.2017
11:31:13
(((

Berkus
30.06.2017
11:31:58
Stanislav
30.06.2017
11:32:04
ну а в целом, я тот же openhomm свой ( не касасяь деталей opegnl) вполне просто запустил на андроиде

Antony
30.06.2017
11:32:28
у тех же qt есть небольшая обертка на жабке
Я про Qt на Андройде ничего не знаю. Кто-нить может вкратце рассказать как оно работает? Оно провязоно с Java, или просто отрисоввывает всё под капотом через OpenGL как игры делают?

Berkus
30.06.2017
11:33:13
покажу кусочек кода void ClientListener::onMemberAdded(ITMemberPtr memberPtr) { LOGP_D(TAG) << "onMemberAdded"; ScopedLocalRefFrame localFrame; auto clientContext = getClientContextFromNativeHandle(localFrame, chatClient_); RETURN_IF_NULL(clientContext); jobject member = clientContext->memberCache.getCachedOrCreate(memberPtr, clientContext); chatClient_.call<void>(onMemberAdded_, member); }

вызывает джавоский листенер колбек при событии, например

Stanislav
30.06.2017
11:33:31
а вот дальше...

самый простой способ как оно там работает, сделать приложуху в креаторе и под андроид компильнуть

Andrii
30.06.2017
11:37:13
ну хорошо, а как дела с ios обстоят? там должно все полегче быть? или нет?

Berkus
30.06.2017
11:37:29
тоже то ещё развлечение

Arseny
30.06.2017
11:38:43
Если есть C интерфейс, то вообще никаких проблем.

Google
Stanislav
30.06.2017
11:38:46
Berkus
30.06.2017
11:39:21
Andrii
30.06.2017
11:43:47
хорошо, я примерно понял, спасибо за ответы)

Дед Пегас
30.06.2017
12:00:57
@AlexRst вакансии к @AlexFails

Александр
30.06.2017
12:01:02
ну хорошо, а как дела с ios обстоят? там должно все полегче быть? или нет?
нет, тонна геморроя из-за секьюрности системы(айос), но красивее выглядит + нет тысяч неизвестных устройств

Дед Пегас
30.06.2017
12:01:10
@AlexRst Читайте правила чатов в шапке!

Alex
30.06.2017
12:01:27
Александр
30.06.2017
12:02:04
там надо бриджить c++ в objc через objc++
нет, только если нужны нативные плагины. И то, обдж-си подучил и всё изи

Berkus
30.06.2017
12:10:32
нет, только если нужны нативные плагины. И то, обдж-си подучил и всё изи
не нужно, если интегрируешь c++ либу? спасибо, не знал

и давно objc умеет напрямую с++ либы вызывать?

Александр
30.06.2017
12:10:53
оборачиваешь в Qt и норм

Berkus
30.06.2017
12:11:01
нде

оборачиваешь в Qt и норм
я не буду сильно ругаться, но это хуйня

принести целый qt вместо того чтобы сделать тонкий бридж на objc++

Александр
30.06.2017
12:12:17
речь шла в контексте Qt, нет?

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