- 
    
Bug
 - 
    Resolution: Done
 - 
    
P2: Important
 - 
    4.6.3
 - 
    None
 
- 
        01648005f1f546dc0281155fecd94b4f47a94584
 
A simple example of this bug:
// A simple templated class (we need 2 or more templated types)
template<typename T1, typename T2> class TestTemplate {};
class Object : public QObject
{
    Q_OBJECT
public slots:
    // The second templated type must be const
    void testSlot(TestTemplate<int, const short*>);
signals:
    // The second templated type must be const
    void testSignal(TestTemplate<int, const short*>);
};
The moc file move "const" keyword at the first templated type as we can see here:
        case 0: testSignal((reinterpret_cast< TestTemplate<const int, short>
>(_a[1]))); break;
        case 1: testSlot((reinterpret_cast< TestTemplate<const int, short>
>(_a[1]))); break;
So there are differents types, we can by-pass this bug with a simple "typedef const short* const_short_ptr" and use "const_short_ptr" instead of "const short*".
(Sorry for my bad english)