{
                  
                  
                    // do stuff with m
                  
                  
                    return m;
                  
                  
                  }
                  
                  
                  
                  
                  
                  Вот следующий код валиден?
                  
                  
                  
                  
                  
                  const auto modified_m = foo(get_m());
                  
                  
                  
                  
                  
                  где get_m возвращает std::string по значению
                  
                  
                
не соберется же
согласен - кажется не должно скомпилится вообще
можно сделать foo(std::string&& m), чтобы собралось) и тогда всё валидно
 Georgy
                          Firsov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Georgy
                          Firsov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Да, это верно Тут уже вопрос в смысле написанного... Да, мы передали более ненужное значение (rvalue), что-то сделали в foo, нас это не волнует Но вот мы его же и возвращаем... Вот это странно Впрочем, вкусовщина скорее всего
логичней там по значению вернуть, иначе получается какая-то странная функция
Невалиден. Не скомпилируется. Нельзя биндить temporary на неконстантную ссылку
Обсуждают сегодня