Поддерживают ли они (GCC) аргументы по умолчанию в шаблоне функции или нет: - PullRequest
0 голосов
/ 03 ноября 2010

Здесь:
http://gcc.gnu.org/
Мой первый вопрос:
1. Как это возможно (см. Колонку новостей), что
Новости
1 октября , 2010
GCC 4.4.5 выпущен.
31 июля , 2010
GCC 4.5.1 выпущен.
22 мая , 2010
GCC 4.3.5 выпущен.
29 апреля , 2010
GCC 4.4.4 выпущен.
14 апреля , 2010
GCC 4.5.0 был выпущен.
В соответствии с этим списком более новая версия (4.5.0) была выпущена ранее, чем более старая версия 4.4.5.
Что я должен прочитать, чтобы понять из этого смысл?
Второй Q:
2. Здесь:
http://gcc.gnu.org/projects/cxx0x.html
Они говорят, что аргументы dflt tmp в fnc поддерживаются их версией 4.4.Я запускаю 4.4.1 ver и при попытке скомпилировать это:

#include <vector>

template<class Key, class CollT = std::vector>
CollT* delete_(Key kValue)
{
    return new CollT;
}

int main()
{
    return 0;
}

Я получаю сообщение об ошибке.
Так что же происходит?

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

std :: vector не является типом без аргумента шаблона. Это означает, что вы не можете установить его в качестве аргумента по умолчанию для параметра шаблона.

1 голос
/ 03 ноября 2010

Ответ 1:

4.5 и 4.4 - это разные ветви развития. Это происходит со многими проектами. Например, Python имел версию 3.0, в настоящее время имеет 3.1, но все еще поддерживает ветку 2.6 / 2.7. (а также поддерживает некоторые функции от 3.x до 2.x)

Ответ 2:

Я думаю, вам не следует задавать несколько (не связанных?) Вопросов одновременно. Я знаю ответ для первого, но не для второго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...