Необязательные параметры в шаблонной функции класса VS2010

У меня странная проблема в MSVS 2010. У меня есть класс с функцией templitized и содержит параметр со значением по умолчанию.

В моем заголовочном файле:

typedef unsinged int data32

class myClass
{
private:
...
public:
...
template <typename T>
T* myF(data32);
}
...

template<typename T>
T* myClass::myF(data32 size = 1)
{
...
}

Хорошо, теперь в моем основном у меня есть что-то вроде этого:

int main()
{
myClass A;
data32* myInt = A.myF<data32>(100);  // no complaints from pre-compiler
data32* myInt2 = A.myF<data32>();    // pre-compiler complains "Error: no instance of the function template "myClass::myF" matches the argument list"}

Я понимаю, почему это так, потому что у меня нет прототипа функции, определенного для ‘myF ()’ в классе, но разве он не должен знать об этом лучше? Я думал, что смыслом по умолчанию было сделать параметры необязательными в вызове. Код компилируется и запускается просто отлично, даже если прекомпилятор недоволен и помечает это как проблему.

Какие-нибудь мысли??
Спасибо!

0

Решение

Есть ошибки (ложные тревоги) в анализаторе intellisense в VS 2010. И это похоже на один из них. Анализатор, используемый для intellisense, отличается от фактического анализатора, используемого в компиляторе.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector