[devel] parse error in template argument list

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пт Дек 8 18:11:20 MSK 2006


On Fri, Dec 08, 2006 at 04:38:54PM +0200, Slava Dubrovskiy wrote:
> Наткнулся на такую ситуацию при сборке firebird. Вот пример:
> 
> $cat test.cpp
> 
> #include <sys/types.h>
> 
> template <typename Object, size_t Capacity = 16>
> class Stack
> {
>     private:
>         void* stk;
>         void* stk_cache;
> 
>     public:
>         explicit Stack<Object, Capacity>()
>             : stk(0), stk_cache(0) { }
> 
>         Stack<Object, Capacity>()
>             : stk(0), stk_cache(0) { }
> 
>         ~Stack<Object, Capacity>()

А если тут везде написать вместо Stack<Object, Capacity> просто Stack (без
явного указания параметров)?

>         {
>             delete stk;
>             delete stk_cache;
>         }
> }; // class Stack
> 
> int main(int argc, char* argv)
> {
>     return(0);
> }
> 
> $ g++-3.4 -o test test.cpp
> $ g++-4.1 -o test test.cpp
> test.cpp:17: error: parse error in template argument list
> 
> $ rpm -qa | grep gcc
> gccmakedep-1.0.1-alt1
> gcc4.1-doc-4.1.1-alt10
> gcc-c++-common-1.4.10-alt1
> gcc3.4-3.4.5-alt6
> gcc-common-1.4.10-alt1
> gcc3.4-c++-3.4.5-alt6
> libgcc4.1-4.1.1-alt10
> gcc4.1-c++-4.1.1-alt10
> gcc4.1-4.1.1-alt10

А 4.1.1-alt9 собирает и в таком виде...
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20061208/2754b69a/attachment-0001.bin>


Подробная информация о списке рассылки Devel