LINUX.ORG.RU

[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от L_user 28.08.2006 18:10:01  

Re: FreeBSD переходит на GCC 3.4.6

> не знаю, не знаю, вот gcc 3.4.6 не может собрать FBreader,- куча
> ошибок c std::string, о чем есть соответ. багрепорты
GCC 3.4.x много чего собрать не может, как правило из-за своеобразного крепления ручек к телам авторов поделок. Про FBreader не знаю, поделись ссылкой на багрепорты.


anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от dilmah 28.08.2006 17:53:28  
klalafuda

Re: FreeBSD переходит на GCC 3.4.6

> 4.99.10 еще не существует:) 4.99.1 это как раз последний current

dmesg на http://ianzag.megasignal.com/ "Mission impossible"? :)

ps: последний NetBSD-curent - это как минимум .23, думаю, уже выше [завтра проверю как соберется]. а вот 3.99.1 - это как раз самый первый -current :)

// wbr

*## ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от dilmah 28.08.2006 19:15:36  
klalafuda

Re: FreeBSD переходит на GCC 3.4.6

> обрати внимание на мажорную цифру:)

hm.. ну разве что отметили 4.x бранч [AFAIR уже сделали] :) ладно, завтра посмотрим..

// wbr

*## ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от anonymous 28.08.2006 18:21:15  

Re: FreeBSD переходит на GCC 3.4.6

> не знаю, не знаю, вот gcc 3.4.6 не может собрать FBreader,- куча > ошибок c std::string, о чем есть соответ. багрепорты

Это проблема не gcc, а неумения афффторов писать на С++. Потому как это ламенство не знать того, что std - это namespace, которое надо либо включать полностью посредством using namespace std; либо указанием using std::string;

* ()
[#]  

Re: FreeBSD переходит на GCC 3.4.6

> FreeBSD переходит на GCC

FreeBSD переходит на GPL? Так держать! :)

anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от anonymous 29.08.2006 0:14:06  

Re: FreeBSD переходит на GCC 3.4.6

>> FreeBSD переходит на GCC

>FreeBSD переходит на GPL? Так держать! :)

Анонимус, wake up, во FreeBSD всю жизнь использовался компилятор gcc.

anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 28.08.2006 22:29:22  
Gharik

Re: FreeBSD переходит на GCC 3.4.6

> > не знаю, не знаю, вот gcc 3.4.6 не может собрать FBreader,- куча > ошибок c std::string, о чем есть соответ. багрепорты

> Это проблема не gcc, а неумения афффторов писать на С++. Потому как это ламенство не знать того, что std - это namespace, которое надо либо включать полностью посредством using namespace std; либо указанием using std::string;

Во-во, понапишут программ такие вот пейсатели, а потом появляются лозунги "32-ядерный Интель в каждый десктоп".. и ложки серебряные пропадают... Лучше бы на Жабе писали.

# ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от Gharik 29.08.2006 10:00:07  

Re: FreeBSD переходит на GCC 3.4.6

>Лучше бы на Жабе писали.

Судя по всему, придется ставить 64-ядерный проц.

anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от anonymous 29.08.2006 10:01:35  
Gharik

Re: FreeBSD переходит на GCC 3.4.6

Не вопрос, Ниагара уже на подходе, да и для Жабы то родная среда.

# ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 28.08.2006 22:29:22  

Re: FreeBSD переходит на GCC 3.4.6

это, ты типа свои знания в C++ показал, что ли? если ты не знал, можно писать и так,-

... std::string str; str = "string"; ...

, без использования директивы using

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 28.08.2006 22:29:22  
klalafuda

Re: FreeBSD переходит на GCC 3.4.6

> Это проблема не gcc, а неумения афффторов писать на С++. Потому как это ламенство не знать того, что std - это namespace, которое надо либо включать полностью посредством using namespace std; либо указанием using std::string;

или же, все-таки как белые люди, "std::string s;" а за использование директивы using расстреливать на месте без суда и следствия :-/

// wbr

*## ()
[#]  

Re: FreeBSD переходит на GCC 3.4.6

а чего не на icc? непорядок! :))

anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от klalafuda 29.08.2006 10:32:02  

Re: FreeBSD переходит на GCC 3.4.6

:-/ А тех еще кто добавляет using в header shared-библиотек надо бить ногами очень сильно, потому как еще другим отравляют жизнь!

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от akira_ag 29.08.2006 12:16:01  

Re: FreeBSD переходит на GCC 3.4.6

>:-/ А тех еще кто добавляет using в header shared-библиотек надо бить ногами очень сильно, потому как еще другим отравляют жизнь!

Shared-библиотеки, вообще-то, должны использовать не STL-типы, а POD.

То есть, вместо Somefunc(const std::string & s); Somefunc(const char * c);

Потому как иначе, при сборке с другой реализацией STL, все либо не соберется, либо работать не будет.

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 29.08.2006 12:42:27  
klalafuda

Re: FreeBSD переходит на GCC 3.4.6

> Shared-библиотеки, вообще-то, должны использовать не STL-типы, а POD.
То есть, вместо Somefunc(const std::string & s); Somefunc(const char * c); Потому как иначе, при сборке с другой реализацией STL, все либо не соберется, либо работать не будет.

"понял, отстал" (c) FIDO

// wbr

*## ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от L_user 29.08.2006 10:17:09  

Re: FreeBSD переходит на GCC 3.4.6

>это, ты типа свои знания в C++ показал, что ли? если ты не знал, 
можно писать и так,- ... std::string str; str = "string"; ... , без 
использования директивы using


Можно и презерватив на глобус натянуть, ага.

Еще можно писать в таком вот стиле:

std::string key, value;
std::map<std::string, std::string> m;
m.insert(std::pair<std::string, std::string>(key, value));

Вместо того, чтобы в начале логического блока написать
{
   using std::string;
   using std::map;
   using std::pair;
  
   string key, value;
   m.insert(pair<string, string>(key, value));
}

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от klalafuda 29.08.2006 10:32:02  

Re: FreeBSD переходит на GCC 3.4.6

>> Это проблема не gcc, а неумения афффторов писать на С++. Потому как это ламенство не знать того, что std - это namespace, которое надо либо включать полностью посредством using namespace std; либо указанием using std::string;

> или же, все-таки как белые люди, "std::string s;" а за использование директивы using расстреливать на месте без суда и следствия :-/

После такихтопиков, начинай считать, что за использование си++ надо расстреливать на месте без суда и следствия...

anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от anonymous 29.08.2006 13:24:49  

Re: FreeBSD переходит на GCC 3.4.6

>После такихтопиков, начинай считать, что за использование си++ надо расстреливать на месте без суда и следствия...

Я тогда еже не знаю, что надо делать после топиков про то, как это классно - писать на ЯП, где не надо декларировать переменные перед их использованием....

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 29.08.2006 12:42:27  

Re: FreeBSD переходит на GCC 3.4.6

Чтобы каждый потом изобретал строки или копировал память ? Если есть договоренности, что нужно использовать конкретный STL, то почему бы не использовать ? А char* это для С программистов. Объекты наше все! Хотя откровенно говоря реализация std::string больше похож на процедурное программирование, чем на ООП :)

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 29.08.2006 12:42:27  

Re: FreeBSD переходит на GCC 3.4.6

И если еще вспомнить про параметр с char* - я даже боюсь себе представить сколько раз потом на нем вызовут strlen и пробегутся по памяти, вместо использования std::string.size()

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от akira_ag 29.08.2006 16:36:50  

Re: FreeBSD переходит на GCC 3.4.6

>Чтобы каждый потом изобретал строки или копировал память ? Если есть договоренности, что нужно использовать конкретный STL, то почему бы не использовать ? А char* это для С программистов. Объекты наше все! Хотя откровенно говоря реализация std::string больше похож на процедурное программирование, чем на ООП :)

char * - это для переносимости. Почитайте того же Александреску о проектировании интерфейсов.

Если есть договоренность использовать конкретный STL, то, конечно же, нет смысла пользоваться POD.

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от akira_ag 29.08.2006 16:47:58  

Re: FreeBSD переходит на GCC 3.4.6

>И если еще вспомнить про параметр с char* - я даже боюсь себе представить сколько раз потом на нем вызовут strlen и пробегутся по памяти, вместо использования std::string.size()

Ну, во-первых, можно передавать не char *, а (char *, int). А во-вторых, ничто не мешает сразу после передачи библиотечной функции char * сделать из него std::string s(szCharData);

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 29.08.2006 18:03:18  

Re: FreeBSD переходит на GCC 3.4.6

> А во-вторых, ничто не мешает сразу после передачи библиотечной функции
> char * сделать из него std::string s(szCharData);
Мещает, точнее - душит. Жаба :)

anonymous ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 29.08.2006 18:03:18  

Re: FreeBSD переходит на GCC 3.4.6

std::string(szCharData) будет равно strcpy() и соотвественно подобие strlen :)

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от akira_ag 30.08.2006 12:08:44  

Re: FreeBSD переходит на GCC 3.4.6

>std::string(szCharData) будет равно strcpy() и соотвественно подобие strlen :)

Будет. Но - один раз, только при вызове конструктора.

Внутри библиотеки никакого strlen уже не будет.

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от stellar 29.08.2006 12:47:53  

Re: FreeBSD переходит на GCC 3.4.6

лучше пользоваться typedef,-

typedef std::string String; String key, value; std::map<String, String> m; m.insert(std::pair<String, String>(key, value));

Почему лучше,- (выше уже писали) нехорошо писать using в заголовках, а typedef,- пожалуйста

так что asm и C++,- наше все

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от L_user 30.08.2006 14:00:24  

Re: FreeBSD переходит на GCC 3.4.6

блин, опять в одну строку получилось
короче вот так нужно:


typedef std::string String;
String key, value;
std::map<String, String> m;
m.insert(std::pair<String, String>(key, value));

()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от L_user 30.08.2006 14:04:36  

Re: FreeBSD переходит на GCC 3.4.6

Да, можно; причем лучше вынести все эти определения в отдельный файл:

namespace XXXYYY
{
typedef std::string String; 
.....
}

----

#include "STLTypes.hpp"

...
...
...

* ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от L_user 30.08.2006 14:00:24  
Gharik

Re: FreeBSD переходит на GCC 3.4.6

> так что asm и C++,- наше все

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

# ()
[#] Ответ на: Re: FreeBSD переходит на GCC 3.4.6 от Gharik 30.08.2006 16:14:57  

Re: FreeBSD переходит на GCC 3.4.6

>При использовании низкоуровневого и высокоуровневого языков одновременно возникают автоколебания, все может закончиться взрывом черепной коробки.

дык не у всех же ... а потом, естественный отбор не повредит ;)

()