LINUX.ORG.RU

си C99

 


2

1

Уважаемые форумчане. Что Вы думаете по поводу использования этого стандарта? Стоит ли его использовать? И использует ли кто либо вообще. Столкнулся с предупреждением вида:

warning: universal character names are only valid in C++ and C99 [enabled by default]
Это из за значения юникода (типа \u2663) в массиве char, обойти(сь) могу, не использовать. Но всё-таки?

★★★

Последнее исправление: Frost (всего исправлений: 1)

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

Опциональные возможности, которые использует v8:

Использует? Мне не нужна твоя паста - мне нужны конкретные пруфцы.

Ну давай, гинерит - ок. Высри мне хотябы strchr(). Мы побенчим.

Если у тебя есть еще фантазии - не стесняйся.

Т.е. конкретно по теме тебе сказал нечего? Ты высрал, что «уделывает сишку», но даже в твоём говнобенче злибцешный биндинг работает быстрее жсвысера. По данному вопросу есть что возразить?

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

Ах да, ты оказывается ещё что-то высрал.

А если ты имел ввиду именно конечную скорость, вот тебе тоже задачка

И где тут задачка?

http://benchmarksgame.alioth.debian.org/u32/performance.php?test=regexdna

Зачем ты мне высрал сишную либу из в8? Какое отношение она имеет к жабаскрипту?

И нахрен ты мне высрал регеспы, которые юзает только обезьяна. Если ты хочешь, чтобы я сгинерил финды/реплейсы руками и в говнецо тебя макнул, то ок. Посмотрим у кого скиллец круче у меня или «жита».

Если не балабол, обгони v8. Покажи скил.

Ты вообще понимаешь какую херню ты несёшь?

Ты понимаешь разницу между кодом и биндингом? Ты понимаешь, что регеспы из v8 никакого отношения к жабаскрипту не имеют? Точно так же, как как гмп не имеет никакого отношения к пистону/аде.

Вот когда ты мне высришь регесп движек на жабаскрипте, то да - молодец, а пока банальный подлог.

Как мне будет не лень - я сгинерю тебе твои регеспы руками. Сравним «оптимизации мегаджита» и мои руки.

http://benchmarksgame.alioth.debian.org/u64/performance.php?test=fasta

Запили хотябы это. Хотябы на уровне примитивных реализации из топа. У тебя даже есть шанс чисто алгоритмический, ибо ни одна из обезьян не осилила написать вменяемо гинератор и линейный поиск.

Либо давай высирай любой другой тест без условий юза полноценных реализаций абстракций из недоязычков, аля регеспы и прочее, ибо в отличии от рандомной обезьяны я могу скомпилить руками этот регесп так, что любой в8 обсериться.

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

Зачем ты мне высрал сишную либу из в8? Какое отношение она имеет к жабаскрипту?
Ты понимаешь разницу между кодом и биндингом? Ты понимаешь, что регеспы из v8 никакого отношения к жабаскрипту не имеют?

%бать ты тугой и темный. Знаешь почему v8 оказался быстрее? Потому-что они компилируют регулярки вместе с JS, а не пользуются «сишной либой». Хотя тебе такой уровень явно недоступен.

Если ты хочешь, чтобы я сгинерил финды/реплейсы руками и в говнецо тебя макнул, то ок. Посмотрим у кого скиллец круче у меня или «жита».
Как мне будет не лень - я сгинерю тебе твои регеспы руками. Сравним «оптимизации мегаджита» и мои руки.

Ты ничего не можешь, ты ноль.

Запили хотябы это. Хотябы на уровне примитивных реализации из топа. У тебя даже есть шанс чисто алгоритмический, ибо ни одна из обезьян не осилила написать вменяемо гинератор и линейный поиск.

Я тебе первый дал задачу, сделаешь - будет моя очередь.

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

Был тип void * у которого деструктора нет, стал тип std::unique_ptr у которого деструктор есть. Этот деструктор будет встроен, делитер

а теперь включи голову, и подумай, ЧТО удаляет delete?

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

Вот только unique_ptr::p это совсем другой указатель, нежели unique_ptr ::p.

Что?

то. Внутри умного указателя unique_ptr есть самый обычный «глупый» указатель.

Нет, конечно unique_ptr это хорошая, годная идея, можешь мне не рассказывать, я в курсе. Я просто предлагаю тебе самому реализовать unique_ptr, не для использования, а для понимания принципа его работы.

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

С 2010 уже можно, например, использовать лямбды, вывод типов, enum class, override, final, nullptr, умные указатели.

умные указатели можно было использовать со времён Страуструпа. Просто для обезьян их ещё не сделали стандартной фичей STL.

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

unique_ptr это хорошая, годная идея

предлагаю тебе самому реализовать unique_pt

умные указатели можно было использовать со времён Страуструпа. Просто для обезьян их ещё не сделали стандартной фичей STL.

Как всегда, Бетти виртуозен в использовании взаимоисключающих параграфов и нагнетании плотного тумана.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

в использовании взаимоисключающих параграфов

и нагнетании плотного тумана.

спрашивай, что конкретно ты не смог понять?

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

То, что до этого выделил и создал new. Как и в условиях отсутствия unique_ptr

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

Внутри умного указателя unique_ptr есть самый обычный «глупый» указатель.

Я знаю. Ты что сказать-то хотел?

Я просто предлагаю тебе самому реализовать unique_ptr, не для использования, а для понимания принципа его работы.

Я понимаю принцип его работы. К чему ты это говоришь?

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

До move-семантии реализовать unique_ptr полноценно ты не мог. У тебя было только две альтернативы: запретить копировать/присваивать и сделать операцию swap(путь boost::scoped_ptr) или изменить семантику копирования/присваивания, изменяя исходный объект(путь auto_ptr).

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

спрашивай, что конкретно ты не смог понять?

Ну, например:

emulek> умные указатели можно было использовать со времён Страуструпа

Ждем пример реализации умных указателей на языке из первого издания книги Страуструпа (1986); потом на языке из второго; потом примеров использования этих реализаций.

Или каким образом

emulek> unique_ptr это хорошая, годная идея

уживается у тебя в голове с

emulek> для обезьян их ещё не сделали стандартной фичей STL

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

Внутри умного указателя unique_ptr есть самый обычный «глупый» указатель.

Я знаю. Ты что сказать-то хотел?

то, что это две сущности, а не одна. И то, что в данном случае имеются накладные расходы в рантайме.

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

Ждем пример реализации умных указателей на языке из первого издания книги Страуструпа (1986); потом на языке из второго; потом примеров использования этих реализаций.

это тебе к Джеффу Элджеру.

уживается у тебя в голове

STL это просто _библиотека_. Т.е. ты вполне можешь и сам всё это написать, и до того, как в появился std::unique_ptr, все так и делали(за исключением обезьян конечно). Да, сейчас этот велосипед не нужен, ибо есть стандартный.

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

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

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

то, что это две сущности, а не одна.

С точки зрения клиента он просто поменял один тип переменной на другой.

И то, что в данном случае имеются накладные расходы в рантайме.

Нет.

auto *p = new my_type(...);
// ...
delete p;

И

auto p = std::make_unique<my_type>(...);
// ...

Делают в рантайме одно и тоже.

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

ты вполне можешь и сам всё это написать, и до того, как в появился std::unique_ptr, все так и делали(за исключением обезьян конечно)

Покажи мне std::unique_ptr на C++03.

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

до того, как в появился std::unique_ptr

Делали shared_ptr, делали scoped_ptr. Но unique_ptr сделать было нельзя.

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

тогда кто и когда вызывает delete?

Деструкор и вызывает. В первом случае вызываешь ты руками.

Если ты как раз про вызов деструктора, то он будет встроен. Так что в рантайме разницы не будет.

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

Ты лучше покажи unique_ptr на C++03, раз утверждал, что его можно было написать до C++11. Не соскакивай. Делись знаниями.

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

Ты лучше покажи unique_ptr на C++03, раз утверждал, что его можно было написать до C++11.

Скорее всего он просто не знал разницы между auto_ptr и unique_ptr.

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

Хотелось бы это от него и услышать.

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

Мне тоже было бы интересно посмотреть на unique_ptr на старом C++.

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

Что там понимать? Принимает владение, дает доступ, не умеет копироваться и присваиваться, умеет перемещаться, в деструкторе удаляет то, чем владеет. Реализация тривиальна. Но стандартными средствами языка до C++1 это реализовать было нельзя из-за отсутствия move-семантики.

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

Т ы сложные программы просто не писал.

ржунимагу
Возьмусь за удаленку (дипломы, курсовики, электроника, сишные программульки и т.п.). Недорого.

Типичный автор сложных программ.

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

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

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