werehuman 15.08.2011 05:08 Psi+

> Поддержка списков инициализации, т.е. передачи структуры или массива в виде списка значений. Например: для конструктора или функции Test можно указать шаблонный класс std::initializer_list и затем для инициализации использовать "Test testVar = {1, 2, 3, 4};" или "Test(1,2,3,4,5)";
Но зачем?

> Возможность автоматического назначения типа при указании ключевого слова "auto". Тип выбирается на основании анализа типа аргумента. Например, "auto otherVariable = 5;";
Но зачем?

> Реализация нового типа ссылок на временные объекты (Rvalue Referencea), объявляемые через выражение "type &&";
Ещё один вид указателей? Ссылок мало?

> Реализация ключевого слова "constexpr", позволяющего указать, что выражение (функция или конструктор) возвращает константу и данные выражения можно использовать как константы, например: "constexpr int GetFive() {return 5;}". В дальнейшем GetFive можно указать, например, при определении массива "int some_value[GetFive() + 7];";
Для этого всегда макросы были. Зачем?

> Ослаблены требования при определении типов простых данных. Например, как тип простых данных могут рассматриваться классы, при соблюдении ряда правил;
Я ведь всё равно не смогу использовать эллипсис? Зачем тогда?

> Вместо макроса NULL для обозначения нулевого указателя введено ключевое слово nullptr.
Но зачем?

Я думал намного будет... Намного лучше будет это всё. И очень плохой язык, просто очень плохой язык! Я думал, намного лучше будет это всё.

Recommended by: @lHooFool, @DZhon, @238328
1. magog 15.08.2011 05:22 Maemo

ну что же ты идиот то такой. Вот что с людьми питон делает. 1. Что бы не городить конструкторы на 100 параметров, а красиво инициализировать. 2. Ту не знаю. 3.пока не в курсе что это вообще такое. 4. Что бы огонь спипчками разжигать, а не трутом и огнивом. Нехуй юзать говномакросы в ооп. 5. Не в курсе зачем, но причина точно есть. 6. См. 4. юзай свой недоязычек и молись на него

2. werehumanmagog /1 15.08.2011 05:27

1. А порядок инициализации по каким критериям считать будешь?
3. Но как только станешь в курсе — с пеной у рта побежишь доказывать, что оно необходимо для жизни.
4. Плохое сравнение. Если нехуй юзать — надо их вообще взять и убрать. Ой, не получается? Так нехуй выёбываться.
5. См. 3.
6. Я на кучу недоязычков молюсь, лишь бы кто-нибудь вытеснил плюсовое убожество с рынка.

3. magogwerehuman /2 15.08.2011 05:38 Maemo

1. В таком порядке, в котором они в классе объявлены — как и со списками инициализации в конструкторе. По поводу пены у рта — не побегу, потому что если не нужно — не принимали бы, а если ты не осилил, то конечно язык говно. Правильное сравнение — вот от них и избавлются понемногу. Потому что всякие быдлокодеры с си головного мозга не осилили конст переменные и продолжают жрать макросоговно. Язык оопшный и нехуй в нем юзать всякие пережитки процедурщины. Это, блядь, эволюция и своя облась применения. А не недоязычки можешь не надеяться — вымрут как и все остальное, а плюсы останутся.

4. werehumanmagog /3 15.08.2011 05:38 Psi+

"оопшный" он будет, когда в него наконец-то рефлексию добавят. А пока что он "копшный"

5. werehumanwerehuman /4 15.08.2011 05:39 Psi+

*то есть никогда

6. werehumanmagog /3 15.08.2011 05:45 Psi+

> Списки инициализации
Это безусловно прекрасный язык, ведь если мы поменяем местами объявление полей класса, то весь код перестанет быть работоспособным. Из сишечки они это, видите-ли, переняли, тридцать лет перенимали и наконец-то сделали шаг в сторону от "коп". Правда, это шаг назад, но не суть важно.
В сишке часто работали со структурами на уровне указателей. Отделить восемь байт со смещением четыре в структуре на си — это норма. Там была куча причин следить за порядком следования записей в структуре.
В плюсах до этого момента было пофигу, как следуют записи, но браво! теперь не пофиг. И всё ради того, чтобы пользователь постоянно скроллил свой текстовый редактор в private-сектор и записывал в строчечку значения для инициализации.

7. werehumanwerehuman /6 15.08.2011 05:48 Psi+

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

8. werehumanwerehuman /6 15.08.2011 05:49 Psi+

потрясающе, я не зря писал этот текст. Читаем дальше до "Универсальная инициализация" и видим как раз этот случай. Костыли.

9. 0x2207 15.08.2011 06:18 epsilon

ты не осилил, по крайней мере 1,2,3,4 пункты

10. DZhon 15.08.2011 06:19

>> Возможность автоматического назначения типа при указании ключевого слова "auto". >>Тип выбирается на основании анализа типа аргумента. Например, "auto otherVariable = 5;";
>>Но зачем?
Чтобы не писать myns::mynestedns::mytype::mynestedtype<param>::iterator it; например.

>> Поддержка списков инициализации, т.е. передачи структуры или массива в видесписка значений. Например: для конструктора или функции Test можно указать шаблонный класс std::initializer_list и затем для инициализации использовать "Test testVar = {1, 2, 3, 4};" или "Test(1,2,3,4,5)";
Сахар.
Вместо std::vector v(5); v[0] = 1; v[1] = 2; ... etc.

> Реализация нового типа ссылок на временные объекты (Rvalue Referencea), объявляемые через выражение "type &&";
Ещё один вид указателей? Ссылок мало?

Кури move semantics. rvalue нужны для реализации move-конструкторов и move-присваиваний (они передают право владения объектом). man boost::unique_future, например.

>>> Реализация ключевого слова "constexpr", позволяющего указать, что выражение (функция или конструктор) возвращает константу и данные выражения можно использовать как константы, например: "constexpr int GetFive() {return 5;}". В дальнейшем GetFive можно указать, например, при определении массива "int some_value[GetFive() + 7];";
>>Для этого всегда макросы были. Зачем?

Это я так понимаю, больше для метапрограммирования. Да, скорее всего не нужно.

>>> Вместо макроса NULL для обозначения нулевого указателя введено ключевое слово nullptr.
Но зачем?

"The macro NULL is implementation-defined C++ null pointer constant in this International Standard".
в новых плюсах отказываются от макросов в стандарте, это пережитки от C.
По большому счету, можно продолжать писать 0 везде.

11. magog0x2207 /9 15.08.2011 06:22 Azoth

+100500

12. magogDZhon /10 15.08.2011 06:23 Azoth

няша. Объяснил то, что я не знал

13. werehumanDZhon /10 15.08.2011 06:23 Psi+

> Чтобы не писать myns::mynestedns::mytype::mynestedtype<param>::iterator it; например
Это я уже почитал, понял. Главное, чтобы компилятор не срал пятиэтажными логами от буста.

> Сахар.
> Вместо std::vector v(5); v[0] = 1; v[1] = 2; ... etc.
Как я понял, не всё так просто.

> Кури move semantics. rvalue нужны для реализации move-конструкторов и move-присваиваний (они передают право владения объектом). man boost::unique_future, например.
Проще было сделать std::vector::move_from(vector &).

> в новых плюсах отказываются от макросов в стандарте
Это будет о-о-о-очень тяжело. Ну пусть попытаются.

14. DZhon 15.08.2011 06:27

> Кури move semantics. rvalue нужны для реализации move-конструкторов и move-присваиваний (они передают право владения объектом). man boost::unique_future, например.
Проще было сделать std::vector::move_from(vector &).

Это не совсем так, rvalue != reference. Временный объект нельзя сделать reference, а rvalue можно, fill the difference.

15. DZhonwerehuman /13 15.08.2011 06:31

move-семантика очень помогает при возврате из функции тяжелого объекта, например, вектора. В таком случае вместо копирования временный объект просто перейдет под владение переменной, к которой происходит присваивание вызова. (Вызовется move-версия конструктора или оператора присваивания).

16. werehumanDZhon /15 15.08.2011 06:32 Psi+

а чем плох auto_ptr?

17. DZhonDZhon /15 15.08.2011 06:34

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

Пример:
#define _GLIBCXX_DEBUG // включаем отладочный режим — для проверки выхода за границы вектора
#include <iostream>
#include <vector>
struct X
{
// invariant: v.size() == 5
X() : v(5) {}

~X()
{
std::cout << v[0] << std::endl;
}

private:
std::vector<int> v;
};

int main()
{
std::vector<X> y;
y.push_back(X()); // X() rvalue: copied in C++03, moved in C++0x
}

18. werehumanDZhon /17 15.08.2011 06:36 Psi+

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

19. DZhon 15.08.2011 06:38

#nogos/16 auto_ptr вообще плох, у него весьма странная семантика передачи владения. Лучше уж упомянуть scoped_ptr. (Даже в Google C++ Style Guide настоятельно рекомендуют забыть об auto_ptr — http://google-styleguide.googlecode.com/...
Если объект не в динамической памяти, то от smart-pointer непримением в чистом виде (только если нельзя задать deleter), например.
Опять же, вся штука в самой move-семантике. Она четко отражает то, что мы хотим сделать с временными объектами. Ты предлагаешь просто реализовать похожее поведение существующими средствами. Можно, но не так очевидно.

20. DZhonwerehuman /18 15.08.2011 06:53

Довольно популярная нынче концепция в бустовых либах: Moveable + Noncopyable + NonAssignable + DefaultConstructable. Т.е. объект можно только создать с нуля и перекидывать между move-вызовами. В таком случае ты точно уверен, что где-нибудь случайно не скопируешь свой объект, который копировать не следует (большие размеры, логическая целостность, etc.)

21. 0xd34df00d 15.08.2011 09:05 Azoth_primary

Да ты тупой шоле.

22. magog0xd34df00d /21 15.08.2011 09:05 Azoth

=)

23. werehuman0xd34df00d /21 15.08.2011 09:05 Psi+

гопота набижала

24. werehuman0xd34df00d /21 15.08.2011 09:06 Psi+

ты, кстати, не бегал нихуя сегодня, так?

25. 0xd34df00dwerehuman /24 15.08.2011 09:06 Azoth_primary

Я проснулся и почитал спеки.

26. 0xd34df00dmagog /1 15.08.2011 09:06

2. Type inference — это удобно. Пусть даже такой тупой, как в плюсах.

27. 0xd34df00dmagog /1 15.08.2011 09:07

5 — соображения типобезопасности, 3 — выражение move semantics через язык, оптимизация операций копирования в тех случаях, когда исходные данные после копирования не нужны.

28. 0xd34df00dwerehuman /5 15.08.2011 09:08

Попизди, рефлексия рассматривается как вопрос о следующих стандартах.

29. 0xd34df00dwerehuman /6 15.08.2011 09:08

А как ты предлагаешь определять порядок инициализации, если один член зависит от другого?

30. werehuman0xd34df00d /28 15.08.2011 09:08 Psi+

это будет кстати та ещё тема для троллинга (вас). От рефлексии сильно упадёт скорость работы.

31. magogwerehuman /30 15.08.2011 09:09 Azoth

все равно быстрее питона будет

32. 0xd34df00dwerehuman /18 15.08.2011 09:09

Да съеби ты нахуй из плюсов уже, все равно ты ниасилил, путаница-хуютаница тебе.

33. 0xd34df00dwerehuman /30 15.08.2011 09:09

Какие милые безосновательные высказывания.

34. werehumanmagog /31 15.08.2011 09:10 Psi+

это будет джава

35. werehumanwerehuman /34 15.08.2011 09:10 Psi+

олол, джва одинаковых коммента теперь и у меня

36. 0xd34df00dwerehuman /34 15.08.2011 09:10 Azoth_primary

Што.

37. werehuman0xd34df00d /36 15.08.2011 09:11 Psi+

джава.

38. magogwerehuman /34 15.08.2011 09:11 Azoth

если у тебя 10 параметрво — все через констурктор передавать?

39. 0xd34df00dwerehuman /37 15.08.2011 09:11 Azoth_primary

И што? Хуита.

40. werehumanmagog /38 15.08.2011 09:12 Psi+

да

41. 0xd34df00dwerehuman /30 15.08.2011 09:12 Azoth_primary

Олсо, типичный пример попсового ниасилятора — ныть о какой-то там рефлексии, когда выкинули такую няшу, как концепты.

42. magogwerehuman /40 15.08.2011 09:12 Azoth

ну че. После таких конструкторов как раз и говорят, что плюсы говно

43. werehumanmagog /38 15.08.2011 09:12 Psi+

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

44. magogwerehuman /43 15.08.2011 09:13 Azoth

блядь. Нахуй тогда конст, если его можно изменять?

45. werehuman0xd34df00d /41 15.08.2011 09:13 Psi+

ага, до генериков тоже не дотянула. Я ж говорю, плюсцы двигаются в сторону джавы.

46. werehumanmagog /44 15.08.2011 09:13 Psi+

потому что ты а) плохо читаешь, б) никогда не видел ничего, кроме плюсцоы

47. magogwerehuman /46 15.08.2011 09:14 Azoth

видел. Например паскаль, делфи (OPascal), перл. И да — я считаю, что другие языки мне пока не нужны. И после того, как я буду чувствовать себя увереннее в плюсах, я точно не начну изучать недоязыки

48. 0xd34df00dwerehuman /43 15.08.2011 09:14 Azoth_primary

Хуйня и костыли.

49. werehumanmagog /47 15.08.2011 09:15 Psi+

пока что ты только перечислил ещё три недоязыка

50. magogwerehuman /49 15.08.2011 09:16 Azoth

на фоне питона они даже больше языки

51. werehuman0xd34df00d /48 15.08.2011 09:16 Psi+

костыли — это вывод функционала парсера в std. Видите ли, есть теперь у меня эллипсис, но пиши std::initializer_list

52. werehumanmagog /50 15.08.2011 09:17 Psi+

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

53. vtwerehuman /52 15.08.2011 09:26

типичные признаки клинического плюсоеба: а) я не знаю другие языки, мне сказали что плюсы самый лудший езык и я буду дрочить его всю жизнь, б) я запускал программы на петонах и джавах, они тормозят, значит это недоязыки, они ТОРМОЗЯТ. Лечить бесполезно.

54. werehumanvt /53 15.08.2011 09:28 Psi+

у джавы проблема с линупсовыми jvm. Под прыщами оно жрёт в несколько раз больше, чем на винде, проверял.

55. 0xd34df00dwerehuman /54 15.08.2011 09:28 Azoth_primary

У джавы проблемы, она говно.

56. vt0xd34df00d /55 15.08.2011 09:29 Work

нет, не она.

57. werehuman0xd34df00d /55 15.08.2011 09:29 Psi+

вообще-то это ты говно, и это доказанный факт, в отличие от. Ну а раз ты говно, то ты видишь всё в коричневом цвете.

58. 0xd34df00dwerehuman /57 15.08.2011 09:31 Azoth_primary

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

59. werehuman0xd34df00d /58 15.08.2011 09:31 Psi+

в чём выражается их говнистость?

60. 0xd34df00dwerehuman /59 15.08.2011 09:32 Azoth_primary

Притянутый за уши костыль, все равно пополам с object'ом. Если ты действительно хочешь поговорить об этом, то ближе к вечеру могу оппробовать нагуглить пруфы.

61. werehuman0xd34df00d /60 15.08.2011 09:34 Psi+

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

62. 0xd34df00dwerehuman /61 15.08.2011 09:34 Azoth_primary

Наконец-то ты согласился.

63. werehuman0xd34df00d /62 15.08.2011 09:34 Psi+

...при этом плюсцы из говна не вылезали

64. vt0xd34df00d /58 15.08.2011 09:35 Work

сановцы просто перестали что-то делать, а когда очнулись — пришлось догонять сисярп. Но не плюсы же.

65. werehuman0xd34df00d /62 15.08.2011 09:35 Psi+

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

66. 0xd34df00dwerehuman /65 15.08.2011 09:35 Azoth_primary

Нет, не знаем, расскажи. У тебя микрософтофобия?

67. werehuman0xd34df00d /66 15.08.2011 09:35 Psi+

да. А у тебя?

68. 0xd34df00dwerehuman /67 15.08.2011 09:36 Azoth_primary

Нет. Я не пользуюсь тем, что говно. Сишарп, в общем-то, неплохой язык, просто мне лично субъективно не нравится. А так ок вполне.

69. werehuman0xd34df00d /68 15.08.2011 09:37 Psi+

я вижу стереотипы в твоей голове... Ты ведь ставишь языкам метки "говно" и "просто не нравится" в зависимости от их евангелистов, да?

70. 0xd34df00dwerehuman /69 15.08.2011 09:38 Azoth_primary

Нет. Мне не нравится сам сишарп, я пробовал с ним извращаться. А про евангелистов ничо не знаю.

71. werehuman0xd34df00d /70 15.08.2011 09:38 Psi+

а почему тебе пхп не нравится?

72. 0xd34df00dwerehuman /71 15.08.2011 09:39 Azoth_primary

Пушо говно. И лень про это писац.

73. werehuman0xd34df00d /72 15.08.2011 09:39 Psi+

а остальные языки на букву п?

74. DZhon0xd34df00d /70 15.08.2011 09:51

C# — это хорошо спроектированная ява. Приходилось кодить, как на том, так и на этом. После явы освоить C# можно за пару недель. Очень радует всякий сахар вроде делегатов. Грамотно включается managed code. В яве это дикий ад и содомия на таком фоне (JNI, спецификации на хэдеры, тошнота). Проблемные места явы — это глупые дженерики с затиранием информации о типе (ради обратной совместимости с кодом из ранних версий). В то время, как майкрософт просто зачастую кладет на то, что код для .Net 1.1 не заработает в .Net 4.0. В универе одногруппник на своем вендоебном смартфоне постоянно переставлял фреймверк, в зависимости от того, что он хочет запустить.

75. werehumanDZhon /74 15.08.2011 09:52 Psi+

сразу видно, кто готов для тырпрайза, а кто нет

76. DZhonwerehuman /71 15.08.2011 09:52

Чем должен нравиться PHP ? Ни потоков, ни стандартов именования, ни какой-то единой парадигмы и стиля в исходниках. Язык раздробства. Начиная от названий функций и заканчивая укуренным ООП, упертым из явы и плюсов.

77. werehumanDZhon /76 15.08.2011 09:53 Psi+

я дедфуда спрашивал >_>

78. 0xd34df00dDZhon /74 15.08.2011 09:53 Azoth_primary

Как будто я спорю.

79. ulidtko 15.08.2011 09:54

ОП — хуй, тред не читал.

80. 0xd34df00dwerehuman /77 15.08.2011 09:54 Azoth_primary

Но зачем? Давно обсосано же.

81. 0xd34df00dulidtko /79 15.08.2011 09:54 Azoth_primary

ОП — тред, хуй не читал.

82. werehuman0xd34df00d /81 15.08.2011 09:54 Psi+

подтверждаю

83. DZhonwerehuman /77 15.08.2011 09:54

Да я так, разговор поддержать (с) поручик

84. werehumanDZhon /83 15.08.2011 09:55 Psi+

просто в твоей адекватности я не сомневаюсь <_<

85. 0xd34df00dwerehuman /84 15.08.2011 09:55 Azoth_primary

А в моей сомневаешься что ли, уебыш?

86. werehuman0xd34df00d /85 15.08.2011 09:55 Psi+

начнём с того, что ты пиздоглазое мудило

87. 0xd34df00dwerehuman /86 15.08.2011 09:56 Azoth_primary

Ты хуй, твоя мать похапе, а отец купил макбук.

88. ulidtko 15.08.2011 10:08

ОП по-прежнему хуй.

89. werehumanulidtko /88 15.08.2011 10:09 Psi+

как думаешь, невежливых следует блеклистить или нет?

90. dorfe 15.08.2011 12:17

auto самое полезное, концепты сразу запилили и так ничего и не добавили, а вообще ты эпичный слоупок, это всё уже 2 года юзают все.

91. 238328 15.08.2011 15:15 >>>

Не понимаю о чём вы. Вчера ко мне приходил программист, настраивал Виндоус и чистил от вирусов, я его спросил: "Как дела?", он сказал, что хорошо. Не знаю, по какому поводу вы тут бугуртите и срётесь.

92. vt238328 /91 15.08.2011 15:22 Mobile

очевидно ты заплатил ему больше, чем плюсоебы получают за месяц

93. magogvt /92 15.08.2011 15:51 Maemo

больше плюсоебов получают только джавоебы

94. dorfemagog /93 15.08.2011 17:14

лолшто? по такой логике пыхпёры ещё больше получают, ага

95. magogdorfe /94 15.08.2011 17:16 Azoth

пыхперы — нищеброды

96. vtdorfe /94 15.08.2011 17:17 Mobile

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

97. dorfemagog /95 15.08.2011 17:18

да нет же, по твоей логике они больше всех получают!

98. magogvt /96 15.08.2011 17:18 Azoth

ты просто не осилил, вот и бугуртишь. А насчет оплаты — буквально сегодня смторел вакансии.

99. werehuman0xd34df00d /29 15.08.2011 09:10 Psi+

смотря где. Если в конструкторе — по старинке, через : хуй(хуй), жопа(жопа). Если при создании экземпляра — то хз...

Do you really want to delete ?