считать?
сначала скопривать s, затем вызвать funca() или на оборот?
Это и без этого не специфицировано, разве нет?
А. Кек. То есть вы хотите сказать, что аргументы могут вычисляться до того, как понятно, у какого объекта метод вызывается?
А какая разница?
если funca() изменит s, будет брух
оно не может изменить s никоим образом.
S s; func(s, [](){ s = {...}; return 1; }());
Для начала начните компилируемый(и отражающий суть) код предоставлять, пожалуйста
Блин. Грустно, что из-за говнокода что-то не работает(
давайте приебемся, что еще и S не определен на clang - 1, на gcc - 0 https://godbolt.org/z/r8dYYjbqf
прямо девиз программистов
У вас код сути не отражает, я это имел ввиду(изменил сообщение выше)
S sa{1}; void func(S s, int a = [](){ sa = {0}; return 1; }()) { std::cout << s.v << std::endl; } опять же clang - 1, gcc - 0
Опять же, забыли захват по ссылке
это уже в глобале
Обсуждают сегодня