Pepe 🐸
В новой папке запусти смейк
Я из кэша уже выпилил это все равно проблема
Pepe 🐸
Та же
V◌┗⢎ℍıK
никто не хочет пописать на пхп?
V◌┗⢎ℍıK
"пописать" не в смысле обоссать
Berkus
Я меняю префикс но почему то cmake_install.cmake все равно хранит дефолтный
кэш стирай, если ты делаешь разные конфигурации - делай их в разных билд директориях
Крылатый
Мы тут пилим подкаст по плюсам и нам нужна небольшая помощь с выбором ведущего (ведущих): https://goo.gl/forms/RfS9Sk4Z56ldoThJ2
Anonymous
CppCast'a не хватает?
Крылатый
Да!
Anonymous
не все могут в качество, GolangShow например, после CppCast'a такая хуйня — по крайней мере мне так показалось это я к тому, что есть шанс скатится в какашку, ну или начать с нее
Anonymous
но вообще, да, подкаст это круто
Constantine
Что-то я все еще очень расстроен этим примером std::function<void()> lambda = [&] () { return lambda; };
Pepe 🐸
Победил проблему в симейке. Как то установил переменную и перебилдил.
Vladislav
А в чем беда?
Type-safety страдает
Олександр
Berkus
а варнингами про неинициализированную lambda оно тебя не закидывает?
Vladislav
Как?
Один тип функций молча кастится к другому
Berkus
а, там капчур, ок
vladislav
а кто учавствует в первом подкасте?
vladislav
о чём будете говорить?
Constantine
Проблема конечно что это мне вчера взорвало ногу примерно вот так std::function<CStringA()> echo = [](CStringA s){ return s == "" ? "" : s; }
Олександр
Ну да, ты не сказал, что у тебя функция должна что-то принимать
Vladislav
Один тип функций молча кастится к другому
Я конечно понимаю что в плюсах уже итак нет строгой типизации, но зачем нагнетать?
Олександр
std::function же темплейт
Constantine
Это что за тернарка такая
Это упрощенный пример. Тернарка возвращает const char * , std::function конвертирует назад в CStringA, до свидания
Anonymous
Я про само условие
Олександр
Крылатый
а кто учавствует в первом подкасте?
Товарищ Полухин в качестве гостя.
Evgeniy
о чём будете говорить?
Я послушал test.ogg. Забавно. Лол, джавка
Vladislav
Vladislav
Но все же
Berkus
prog.cc: In function 'int main()': prog.cc:9:1: error: conversion from 'main()::<lambda(std::__cxx11::string)>' to non-scalar type 'std::function<std::__cxx11::basic_string<char😠)>' requested }; ну так и чо
Constantine
Это так по стандарту, кстати, или реализация такая?
Ну этот пример компилит все, что я нашел std::function<CStringA()> echo = [](CStringA s){ return s == "" ? "" : s; }
Berkus
где тут выстрел в ногу
Олександр
Это упрощенный пример. Тернарка возвращает const char * , std::function конвертирует назад в CStringA, до свидания
Потому что ты ее так обьявил! std::function это не какая-то магия, это тупой шаблон. Как обьявишь, так и будет вызываться и работать.
Berkus
У него компилилось
он возможно инвалид что ли
Berkus
prog.cc: In function 'int main()': prog.cc:9:1: error: conversion from 'main()::<lambda(std::__cxx11::string)>' to non-scalar type 'std::function<std::__cxx11::basic_string<char😠)>' requested
Berkus
не компилится, покажите работающий пример
Олександр
не компилится, покажите работающий пример
Он использует не std::string, а ATL::CStringA
Constantine
не компилится, покажите работающий пример
класс CStringA нельзя заменить на std::string в примере
Олександр
Там возможен неявный каст в const char*
Berkus
ну приведи тогда класс CStringA, я его за тебя выдумывать буду?
Олександр
Это из майкрософтовской библиотеки шаблонов ATL
Berkus
ссылку
Berkus
я не пользуюсь ATL и прочими говноподелиями мс
Berkus
Closed: cannot reproduce
Олександр
https://git.reactos.org/?p=reactos.git;a=blob;f=reactos/sdk/lib/atl/cstringt.h;hb=222cce68149ded6fe2abc5b6295ce982c7e68222#l288
Олександр
Из ReactOS
Berkus
что из этого важно?
Berkus
Там возможен неявный каст в const char*
Constantine
именно
Berkus
и?
Anatoly
Severity Code Description Project File Line Suppression State Error C2440 'initializing': cannot convert from 'CMFCApplication5App::{ctor}::<lambda_152cda3ab2ae79cb0a18d1c14222c378>' to 'std::function<CStringA (void)>' MFCApplication5 c:\users\stranger\documents\visual studio 2015\projects\mfcapplication5\mfcapplication5\mfcapplication5.cpp 30
Vladislav
Closed: cannot reproduce
https://xkcd.com/583/
Anatoly
разные сигнатуры
Berkus
оно ругается на разные сигнатуры да, причем тут неявное приведение?
Constantine
ой сорри
Олександр
Суть в том, что а) неявные касты - плохо б) надо обьявлять все нормально /тхреад
Berkus
Constantine
std::function<CStringA(CStringA)> echo = [](CStringA s){ return s == "" ? "" : s; }
Constantine
параметр не указал
Constantine
разные сигнатуры
ловите исправленный
Олександр
Указывай все типы явно и не стреляй себе в ногу
Constantine
Я выбросил std::function и больше не стреляю себе в ногу, да
Олександр
https://www.youtube.com/watch?v=HvEhOKkfoSo