const&?
                  
                  
                
const auto a = s(); auto b = s(); s(a); // calls s::s(const s&) s(b); // calls s::s(s&)
 Tolik
                          Malibroda
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Tolik
                          Malibroda
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Понимаю, но они по сути делают одно и то же, если написать = default?
Просто без конструктора S(S&) для неконстантной lvalue ссылки твой конструктор с вариадиками будет лучше матчиться, так как он примет S& вместо const S& в copy ctor
Вообще, шаблонные конструкторы без дополнительных ограничений (sfinae / requires), особенно принимающие universal reference довольно опасны Нужно ограничивать / добавлять теги первым параметром
Обсуждают сегодня