// RUN: %clang_cc1 -std=c++20 -verify %s -o - struct empty {}; struct metre : empty { }; struct second : empty { }; template struct divided_units : empty { }; template struct quantity { }; // #QUANT void use() { quantity{}> q{}; quantity q2 = q; // expected-error@-1 {{no viable conversion from 'quantity{{}}>' to 'quantity'}} // expected-note@#QUANT {{candidate constructor (the implicit copy constructor) not viable: no known conversion from 'quantity{}>' to 'const quantity &' for 1st argument}} // expected-note@#QUANT {{candidate constructor (the implicit move constructor) not viable: no known conversion from 'quantity{}>' to 'quantity &&' for 1st argument}} }