Lunderberg commented on issue #14600:
URL: https://github.com/apache/tvm/issues/14600#issuecomment-1505314917

   I can reproduce the error with g++ 11.3.0 as well.  I believe this is a 
limitation of the class template argument deduction in C++17.  Because the 
constructor for `Array<T>` has a template parameter `IterType` that is not 
derived from `T`, the parameter `T` can't be deduced from the template 
arguments.  For example, the `Array` constructor from 
`std::initializer_list<PrimExpr>` is only valid for `Array<PrimExpr>`, so the 
class template parameter `T` can be deduced as `PrimExpr`.  However, the 
constructor taking arguments of of `(Array<PrimExpr>::iterator, 
Array<PrimExpr>::iterator)` could be used to construct either a 
`Array<PrimExpr>` or a `Array<ObjectRef>`, and so the class template parameter 
`T` can't be deduced.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to