[Issue 1454] IFTI cant  deduce parameter if alias argument used
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Wed Feb 20 22:59:50 PST 2008
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=1454
bugzilla at digitalmars.com changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID
------- Comment #3 from bugzilla at digitalmars.com  2008-02-21 00:59 -------
Consider the following more general case:
  template A(T) { alias R A; }
  void func(T)(A!(T).R a) { }
  void main() { func (4); }
So the call tells you that A!(T).R should be int. You need to (1) find the set
of Ts that satisfy the condition, and (2) prove that that set is { int }. I'm
not sure this is tractable, and even if it were, there's a bit too much AI
involved to make this a practical language feature.
(Thanks to Andrei for helping me with this)
C++ is not capable of doing this, either. Here's an example:
template<class T> struct Bar
{
    typedef T a;
};
template<class T> void foo(Bar<T>::A a) { }
void main()
{
    foo(3);
}
-- 
    
    
More information about the Digitalmars-d-bugs
mailing list