LINUX.ORG.RU

Ответ на: комментарий от shty

Ну а контейнеры то всякие, да auto_ptr-ы, итп, оны все всегда определяют конструкторы копии, и оператор копирования, да и вообще, имхо хороший стиль — явно либо запретить копирование, либо написать корректные операторы копии и констр копирования.

Никакой STL-ный шаблон не будет иметь конструкторов копии дефолтных, везде все переопределено 10 раз ;)

a0
()
Ответ на: комментарий от a0

Ну а контейнеры то всякие, да auto_ptr-ы, итп, оны все всегда определяют конструкторы копии, и оператор копирования, да и вообще, имхо хороший стиль — явно либо запретить копирование, либо написать корректные операторы копии и констр копирования.

Никакой STL-ный шаблон не будет иметь конструкторов копии дефолтных, везде все переопределено 10 раз ;)

да-да-да! золотые слова :)

не помню где видел правило: если написан хотя бы один из методов в тройке «конструктор» / «деструктор» / «конструктор копии» то рекомендуется дописать и остальные (в случае с конструктором копии хотя бы просто запретить вызов) :)

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

shty ★★★★★
()
Ответ на: комментарий от shty

И что тут страшного? Вот синтаксис шаблонов в C++, у меня рука не поднимается написать пример :)

Deleted
()
Ответ на: комментарий от a0

>Если вы об этом. Go просто дописывает ";" в конец каждой строки автомато, так что его можно не писать, но это не значит, что нельзя комкать все в одну строчку.

Уточни, Go дописывает, или IDE дописывает? А то виделе ли если судить по IDE то ЯП так не сравнить

Siado ★★★★★
() автор топика
Ответ на: комментарий от a0

>Да нет, просто какой-то лысый очкарик никак не освоит не то, что C++, по русски изьясняться и понимать, что ему пишут, не может.

А по факту можешь чего, школоло?

Хе-хе-хе, возникнут.


Ну и какие? коль ты так уверен.

если у тебя Java тормозит


Вернемся к вопросу:
Ты через строчку читаешь да?

Siado ★★★★★
() автор топика
Ответ на: комментарий от namezys

>Принципиально другая модель управления ресурсами. Достаточно?

Абсолютно не достаточно.

Siado ★★★★★
() автор топика
Ответ на: комментарий от Deleted

И что тут страшного? Вот синтаксис шаблонов в C++, у меня рука не поднимается написать пример :)

это потому что у тебя рука не набита, а так там ничего сложного нет

shty ★★★★★
()
Ответ на: комментарий от Siado

> А по факту можешь чего, школоло?

Похоже окончательно засцал топикстартер что-то отвечать. Если и ответит, то только «Школоло такое школоло» :) Вопросы проигнорит опять.

Свободен.

a0
()
Ответ на: комментарий от Siado

> Уточни, Go дописывает, или IDE дописывает? А то виделе ли если судить по IDE то ЯП так не сравнить

По моему все предельно ясно написано:

[quote] Go code uses very few semicolons in practice. Technically, all Go statements are terminated by a semicolon. However, Go treats the end of a non-blank line as a semicolon unless the line is clearly incomplete (the exact rules are in the language specification). A consequence of this is that in some cases Go does not permit you to use a line break. For example, you may not write ... [/quote]

a0
()
Ответ на: комментарий от Siado

И таки да, вы будете удевлены, но у Go нет никакой IDE, ни «стандартной» ни ильтернативных, вообще никаких. Можно конечно к тому-же eclipse-у цепануть, но это удел первокуров не осиливших как можно работать с кодом без IDE.

a0
()
Ответ на: комментарий от a0

> И таки да, вы будете удевлены, но у Go нет никакой IDE, ни «стандартной» ни ильтернативных, вообще никаких

ага - для языка, который анонсирован в ноябре прошлого года и имеет компилятор только для Lin/Mac - отсутствие IDE просто таки удивительно :)

lester ★★★★
()
Ответ на: комментарий от Deleted

Да, конечно, «вы ещё не надрочились на этот синтаксис» делает синтаксис лучше.

дорогой мой, то что отдельно взятый персонаж ни хрена не понимает в квантовой физике совсем не означает что квантовая физика - говно :) как то так

shty ★★★★★
()
Ответ на: комментарий от shty

К сожалению для тебя, синтаксис языка это не квантовая физика, так что этот финт ушами не засчитывается.

Deleted
()
Ответ на: комментарий от Deleted

К сожалению для тебя, синтаксис языка это не квантовая физика, так что этот финт ушами не засчитывается.

ну раз так тогда почему ты его не осилил? :)

shty ★★★★★
()
Ответ на: комментарий от shty

«Не осилил» и «страшный синтаксис» это разные вещи, не находишь? То, что ты решил, что твой собеседник что-то не осилил это твои личные проблемы.

Deleted
()
Ответ на: комментарий от Deleted

Синтаксис //К.О. :)

у тебя есть альтернативный лучший вариант записи, например такого:

set<string> names;

template<typename T>
class myClass
{
...
}

?

lester ★★★★
()

Как может на целой странице быть NULL содержания...

vertexua ★★★★★
()
Ответ на: комментарий от Deleted

«Не осилил» и «страшный синтаксис» это разные вещи, не находишь?

хватит уже ваньку валять - ничего в синтаксисе шаблонов страшного нет, если не согласен - приводи пруф (кусок кода)

и да, ты можешь отмазываться, но то что ты называешь синтаксис «страшным» означает что ты его использование не осилил, хочешь верь, а хочешь - нет :)

shty ★★★★★
()
Ответ на: комментарий от shty

>хватит уже ваньку валять - ничего в синтаксисе шаблонов страшного нет

и да, ты можешь отмазываться, но то что ты называешь синтаксис «страшным» означает что ты его использование не осилил

Все познаётся в сравнении, а сравнивать можно с haskell. Более простой и понятный синтаксис и вполне вменяемый отчёт об ошибках в случае очепятки. Кому после этого захочется писать шаблоны на плюсах?(экстремалы и мазохисты не в счёт)

SV0L0CH
()
Ответ на: комментарий от SV0L0CH

> Более простой и понятный синтаксис

проще чем «set<string> names;»?

вполне вменяемый отчёт об ошибках в случае очепятки


это зависит от компилятора, а не от языка, и да - зная строку ошибки и имея выхлоп компилятора с описанием разворачивания шаблона, найти очипятку не составляет труда

lester ★★★★
()
Ответ на: комментарий от SV0L0CH

> Все познаётся в сравнении, а сравнивать можно с haskell.

вы понимаете разницу между ними

namezys ★★★★
()
Ответ на: комментарий от SV0L0CH

>и да, ты можешь отмазываться, но то что ты называешь синтаксис «страшным» означает что ты его использование не осилил

Все познаётся в сравнении, а сравнивать можно с haskell.

хахаха :) тогда надо говорить «синтаксис шаблонов, по сравнении с тем как это делается в haskell, обладает рядом недостатков» (это для примера, а совсем не как утверждение)... ну, даже если и так, что с того? мне вот lisp больше нравится чем haskell, теперь haskell - гогно?

Более простой и понятный синтаксис и вполне вменяемый отчёт об ошибках в случае очепятки.

как это делает синтаксис (!) шаблонов c++ страшным?

Кому после этого захочется писать шаблоны на плюсах?(экстремалы и мазохисты не в счёт)

тому кто пишет на плюсах, ни больше ни меньше *surprise*?

shty ★★★★★
()
Ответ на: комментарий от shty

Т.е. мне сейчас надо пойти и искать C++ проект с шаблонами (у меня то их нет), что б привести тебе какой-то мифически пруф, который ничего не скажет? Смысл? Для тебя это ничего не изменит. Валяй ваньку дальше, негодник :}

Deleted
()
Ответ на: комментарий от Deleted

Пример с гугла, дальше мне лень :) WTF?

vector<basic_string<char, char_traits<char>, allocator<char> >, allocator<basic_string<char, char_traits<char>, allocator<char> > > >

Deleted
()
Ответ на: комментарий от Deleted

Т.е. мне сейчас надо пойти и искать C++ проект с шаблонами (у меня то их нет), что б привести тебе какой-то мифически пруф, который ничего не скажет?

так и запишем: обосновать свою позицию не может

Смысл?

ответить за базар, а то клопов давить и тёрки тереть все могут

shty ★★★★★
()
Ответ на: комментарий от Deleted

Пример с гугла, дальше мне лень :) WTF?

vector<basic_string<char, char_traits<char>, allocator<char> >, allocator<basic_string<char, char_traits<char>, allocator<char> > > >

бггг... с какого трейса ты это вытащил :)

это всего лишь std::vector< std::string > > :)

shty ★★★★★
()
Ответ на: комментарий от Deleted

Это простейший случай. Напиши их побольше и смотрится ужасно.

set<string> names;
vector<string> vec = { "Name1", "Name2", "Name3" };

for( string& it : vec ) names.insert( it );
for( string& it : vec ) it += "_Test";

что тут ужасного?

lester ★★★★
()
Ответ на: комментарий от Deleted

сбейте любой код в кучу и он станет нечитаемым :)

vector< 
    basic_string<
        char, char_traits<char>, allocator<char> >, 
    allocator<
        basic_string<
            char, char_traits<char>, allocator<char> > 
                    > 
      >
shty ★★★★★
()
Ответ на: комментарий от shty

Ужасно этим пользоваться. Потом люди рассказывают, что XML сложен для понимания :) Т.е. я не говорю, что понять это нельзя, но портянка получается не слишком приятная.

Deleted
()
Ответ на: комментарий от Deleted

> Это то как раз понятно. Но это уже решение, а не отсутствие проблемы.

в чем проблема то? еще раз - это записывается очень просто: vector<string>

lester ★★★★
()
Ответ на: комментарий от lester

> сбейте любой код в кучу и он станет нечитаемым :)

у вас это получилось ;)

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

vector< 
    T,
    allocator< T > 
      >

что тут сложного? или Вы не ковырялись никогда во внутренностях stl или boost?

shty ★★★★★
()
Ответ на: комментарий от Deleted

Ужасно этим пользоваться. Потом люди рассказывают, что XML сложен для понимания

в таком виде как вы написали этим не пользуются, это трейс компилятора, зачем его приводить в качестве примера - «нипанятно»

я не знаю кто там Вам рассказывает что XML сложен для понимания - наверное угарщики какие нибудь :)

shty ★★★★★
()
Ответ на: комментарий от shty

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

что тут сложного? или Вы не ковырялись никогда во внутренностях stl или boost?


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

lester ★★★★
()
Ответ на: комментарий от shty

>зачем его приводить в качестве примера - «нипанятно»

В качестве аналога того, что вполне может встретиться в программе.

я не знаю кто там Вам рассказывает что XML сложен для понимания - наверное угарщики какие нибудь :)


Можно я процитирую это во время очередного срача про нечитабельность XML на ЛОРе? :)

Deleted
()
Ответ на: комментарий от lester

обычный typedef враз сделает все читабельным

это подробности, можно и без него - на читабельность не влияет, а вот когда пишешь - слишком многа букаф

shty ★★★★★
()
Ответ на: комментарий от lester

Кроме как vector<string> никак не используются шаблоны? Вот когда нагородить придётся такую лапшу, то это не будет радовать.

Deleted
()
Ответ на: комментарий от shty

можно и без него - на читабельность не влияет

ну да:

vector<cstring,allocator<string>

и

vector<  
    basic_string< 
        char, char_traits<char>, allocator<char> >,  
    allocator< 
        basic_string< 
            char, char_traits<char>, allocator<char> >  
                    >  
      > 

совсем одинаково читаются

lester ★★★★
()
Ответ на: комментарий от Deleted

> Кроме как vector<string> никак не используются шаблоны?

на практике обычно используются шаблоны с одним-двумя параметрами и теми же typedef - так что разницы по сути нет

Вот когда нагородить придётся такую лапшу, то это не будет радовать.


зачем ее городить?

lester ★★★★
()
Ответ на: комментарий от Deleted

В качестве аналога того, что вполне может встретиться в программе.

такое в жизни не встречается, поверьте... если уж надо написать такое (ну допустим), то lester всё правильно сказал

typedef basic_string<  
            char, char_traits<char>, allocator<char> > string_t

vector< string_t, allocator< string_t > >

какие проблемы?

shty ★★★★★
()
Ответ на: комментарий от Deleted

Кроме как vector<string> никак не используются шаблоны? Вот когда нагородить придётся такую лапшу, то это не будет радовать.

typedef поможет отцу русской демократии

shty ★★★★★
()
Ответ на: комментарий от lester

ну, скажем, не так сильно влияет как это на первый взгляд кажется :)

shty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.