шаблонные выражения и визуальная студия 2005 c ++ - PullRequest
1 голос
/ 11 мая 2010

Я бы хотел собрать библиотеку olb3d с моим компилятором visual studio 2005, но это не помогло из-за ошибок шаблона.

Точнее говоря, следующее выражение кажется проблемой:

void function(T u[Lattice<T>::d])

На сайте проекта указывается, что, вероятно, мой компилятор не способен на такие сложные шаблонные выражения - нужно использовать gcc 3.4.1.

Теперь у меня вопрос, есть ли способ обновить мой компилятор vs c ++, чтобы он мог обрабатывать выражения шаблонов на уровне gcc 3.4.1? Может быть, это поможет, если я получу более новую версию visual studio?

Приветствие C.

Ответы [ 2 ]

2 голосов
/ 11 мая 2010

Купите более новую версию Visual Studio. 2005 год довольно старый и не очень соответствующий. Вы всегда можете сначала протестировать новый, загрузив Visual C ++ Express .

0 голосов
/ 11 мая 2010

Компилятор говорит, что не может определить тип шаблона.Вы всегда можете помочь, указав сам тип в вашем коде.

foo<int>(some_int_array);

Однако та часть между [], которая вызывает его, совершенно бессмысленна.Массивы распадаются на указатели, и значение игнорируется в первую очередь.Вы можете просто закомментировать эту часть, если это реальный пример.

Если вы возьмете массив в качестве ссылки, VC ++ 2005 также, похоже, не будет иметь никаких проблем с ним:

(Возможно ли, что случай, который не компилируется, настолько бессмысленен, что никто никогда не удосужился проверить, работают ли подобные вещи?)

...