================
@@ -323,19 +325,114 @@ struct TemplateParameterListBuilder {
     return *this;
   }
 
-  BuiltinTypeDeclBuilder &finalizeTemplateArgs() {
+  // The concept specialization expression (CSE) constructed in
+  // constructConceptSpecializationExpr is constructed so that it
+  // matches the CSE that is constructed when parsing the below C++ code:
+  //
+  // template<typename T>
+  // concept is_typed_resource_element_compatible = sizeof(T) <= 16;
----------------
bob80905 wrote:

I don't believe that's absolutely required. For example, one can have 
`RWBuffer<float>`, where the element type, `float`, is not a vector. If we 
require vectors, then I would think `RWBuffer<float>` would be invalid, and 
only things like `RWBuffer<float2>` would be accepted.

Additionally, this comment block will be changed when the finalized constraint 
expression is added, since the concept is more complex than just comparing the 
size to 16 bytes.

https://github.com/llvm/llvm-project/pull/116413
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to