|
virtual methods
|
|||
---|---|---|---|
#18+
a guestrdb_devНу так и доказывай, что это "чистая правда"Это ты меня пытаешься в чём-то убедить (что в C++ действительно всё то, что действительно в C, т.к. C++ наследуется от C или вроде того). Ну вот и доказывай, что Введение к чему-то обязывает.Неа! :) Я просто хочу увидеть ссылку на тот фрагмент официальных правил написания стандартов ISO где утверждается, то, что ты тут нам пересказываешь! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 11:32 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... Это ты меня пытаешься в чём-то убедить (что в C++ действительно всё то, что действительно в C, т.к. C++ наследуется от C или вроде того). Ну вот и доказывай, что Введение к чему-то обязывает.Неа! :) Я просто хочу увидеть ссылку на тот фрагмент официальных правил написания стандартов ISO где утверждается, то, что ты тут нам пересказываешь!И кто тебе мешает? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 11:40 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestrdb_devНеа! :) Я просто хочу увидеть ссылку на тот фрагмент официальных правил написания стандартов ISO где утверждается, то, что ты тут нам пересказываешь!И кто тебе мешает?Твой "Чайник Рассела", очевидно же! Бремя доказательства лежит на утверждающем. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 12:08 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... И кто тебе мешает?Твой "Чайник Рассела", очевидно же! Бремя доказательства лежит на утверждающем.Это ты пытаешься тут доказать про действие правил из C в C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 12:30 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... Это ты пытаешься тут доказать про действие правил из C в C++.Мне не надо ничего доказывать! За меня это сделало "Введение в стандарт C++" 21460144 .Там даже не написано такого (что правила действуют). Написано, что C++ "based" на C. Что это "based" означает? Java тоже based на C и C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:09 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestТам даже не написано такого (что правила действуют). Написано, что C++ "based" на C. Что это "based" означает? Java тоже based на C и C++.Перечитывай до просветления, может излечишься! "C++ - это язык программирования общего назначения, основанный на языке программирования C, как описано в ISO/IEC 9899:2011 Programming languages — C (далее-стандарт C). C++ предоставляет множество возможностей, помимо предоставляемых C, включая дополнительные типы данных, классы, шаблоны, исключения, пространства имен, перегрузку операторов, перегрузку имен функций, ссылки, операторы управления свободными хранилищами и дополнительные библиотечные средства." ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:12 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestНаписано, что C++ "based" на C. Что это "based" означает? Java тоже based на C и C++.В каком месте спецификации Java написана подобная бредятина? Можно ссылочку? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:13 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestТам даже не написано такого (что правила действуют). Написано, что C++ "based" на C. Что это "based" означает? Java тоже based на C и C++.Перечитывай до просветления, может излечишься! "C++ - это язык программирования общего назначения, основанный на языке программирования C, как описано в ISO/IEC 9899:2011 Programming languages — C (далее-стандарт C). C++ предоставляет множество возможностей, помимо предоставляемых C, включая дополнительные типы данных, классы, шаблоны, исключения, пространства имен, перегрузку операторов, перегрузку имен функций, ссылки, операторы управления свободными хранилищами и дополнительные библиотечные средства." А почему тогда, например, variable length arrays в C++ не разрешены? Они разрешены в C, на котором C++ based (что, якобы, должно означать, что всё, что верно в C — верно и в C++). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:14 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestА почему тогда, например, variable length arrays в C++ не разрешены? Они разрешены в C, на котором C++ based (что, якобы, должно означать, что всё, что верно в C — верно и в C++).С какого перепугу? :) Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:28 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyЯ вообще не понимаю, какая джава головного мозга должна быть в голове человека, предположившего, что работа с памятью через приведенный указатель в С/С++ это UB (т.е. то без чего С/С++ нафик не нужен еще и не работает). Тут не стандарт надо обсуждать, а куда его направить лечиться )) но в целом-то он прав. Лично я, всю жизнь думал, что арифметика над указателями описывается просто как pointer + sizeof( type ). Но драфт на который была ссылка (ровно как и MSDN) арифметику над указателями описывает __исключительно__ как навигацию в массиве (при этом исключительно в приделах массива, с исключением для элемента следующего за самым последним). Т.ч. в данном случае "java головного мозга" у тех, кто пишет драфты пытаясь из C сделать нечто java-ООП-универсально-образное. В общем-то, "работа с памятью через приведенный указатель не к исходному типу", явно платформенно зависимое решение, которое может работать, а может и нет. То, что char и int все же формально разные типы данных, надеюсь никто спорить не будет. IMHO & AFAIK P.S. Топик получился феерический. Вроде начался с одного невинного идиотского вопроса, а уже 13 страниц все друг в друга какашки кидают. На мой взгляд, топик нужно занести в аналы истории, где-то рядом с темой "бритье подмышек" из fido конференции ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:37 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestЯ вижу ты совсем нулевой... https://wandbox.org/permlink/SrXdy1eWXerw4BGL Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:39 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestЯ вижу ты совсем нулевой... https://wandbox.org/permlink/SrXdy1eWXerw4BGL Код: plaintext 1. 2.
Передай своему свежему g++ флаг -pedantic-errors ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:45 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevЛично я, всю жизнь думал, что арифметика над указателями описывается просто как pointer + sizeof( type ).Ты неправильно думал! То, о чем ты думал, отсутствует также и в Си. Арифметика указателей всегда учитывает размер типа данных на экземпляры которых ссылается указатель. Если указатель указывает на double, то (P)+1 указывает на следующий double, а не на более старший байт (для little-endian) или более младший (для big-endian) байт того же самого double. Leonid KudryavtsevНо драфт на который была ссылка (ровно как и MSDN) арифметику над указателями описывает __исключительно__ как навигацию в массиве (при этом исключительно в приделах массива, с исключением для элемента следующего за самым последним). Т.ч. в данном случае "java головного мозга" у тех, кто пишет драфты пытаясь из C сделать нечто java-ООП-универсально-образное.Вот что об этом написано в стандарте C++ . Ничем не отличается от Си. Leonid KudryavtsevВ общем-то, "работа с памятью через приведенный указатель не к исходному типу", явно платформенно зависимое решение, которое может работать, а может и нет.Тут ты тоже ошибаешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 13:59 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestПередай своему свежему g++ флаг -pedantic-errorsПередал, ничего не поменялось! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:05 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestПередай своему свежему g++ флаг -pedantic-errorsПередал, ничего не поменялось! :)А нет, пардон! Поменялось. Ну и зачем мне выставлять этот флаг? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:08 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_devrdb_devпропущено... Передал, ничего не поменялось! :)А нет, пардон! Поменялось. Ну и зачем мне выставлять этот флаг? :)Чтобы отключить нестандартные расширения. VLA — это расширение g++. VLA не разрешены стандартом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:10 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestrdb_devпропущено... А нет, пардон! Поменялось. Ну и зачем мне выставлять этот флаг? :)Чтобы отключить нестандартные расширения. VLA — это расширение g++. VLA не разрешены стандартом.Кто тебе сказал, что это поведение "нестандартное"? :) Тебе же гнусы чёрным по белому написали: "Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++." Надеюсь, тебе не надо объяснять, что означают сокращения C99 и C90 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:16 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... Чтобы отключить нестандартные расширения. VLA — это расширение g++. VLA не разрешены стандартом.Кто тебе сказал, что это поведение "нестандартное"? :) Тебе же гнусы чёрным по белому написали: "Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++." Надеюсь, тебе не надо объяснять, что означают сокращения C99 и C90 ?Ты не отличаешь C99 от C++? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:18 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... Чтобы отключить нестандартные расширения. VLA — это расширение g++. VLA не разрешены стандартом.Кто тебе сказал, что это поведение "нестандартное"? :) Тебе же гнусы чёрным по белому написали: "error: ISO C++ forbids variable length array". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:21 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestrdb_devпропущено... Кто тебе сказал, что это поведение "нестандартное"? :) Тебе же гнусы чёрным по белому написали: "error: ISO C++ forbids variable length array". Это означает лишь одно - в стандарте C++ явно оговорили данное отличие от наследуемого Си. Что тебя, опять, не устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:31 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_dev....Арифметика указателей всегда учитывает размер типа данных на экземпляры которых ссылается указатель..... Об этом я знаю ))) sizeof(type) я и написал. Но draf то опысывает как раз по другому. Не "учитывается размер", а то, что будет выбран корректный элемент в массиве. Т.е. ограничивает всю "арифметику" исключительно перемещением по массиву (при этом, еще и с запретом выхода за пределы массива) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:36 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... "error: ISO C++ forbids variable length array". Это означает лишь одно - в стандарте C++ явно оговорили данное отличие от наследуемого Си. Ты вроде был за то, что VLA разрешены. Allowed красным выделял. В каком разделе стандарта C++ явно оговорено данное отличие? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:39 |
|
virtual methods
|
|||
---|---|---|---|
#18+
a guestrdb_devпропущено... Это означает лишь одно - в стандарте C++ явно оговорили данное отличие от наследуемого Си. Ты вроде был за то, что VLA разрешены. Allowed красным выделял. В каком разделе стандарта C++ явно оговорено данное отличие?Тебе гнусы написали, что VLA разрешены в C90 режиме компилятора g++. Чего тебе еще? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:42 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevно в целом-то он прав. Лично я, всю жизнь думал, что арифметика над указателями описывается просто как pointer + sizeof( type ). Но драфт на который была ссылка (ровно как и MSDN) арифметику над указателями описывает __исключительно__ как навигацию в массиве (при этом исключительно в приделах массива, с исключением для элемента следующего за самым последним). Кусок памяти и ссылка (в широком смысле: имя, указатель, ссылка) на него с информацией о типе, это и есть объект, в том числе массив, если тип - массив. Абсолютно не важно какие там конструкторы и в каком порядке вызывались. От этого массив не перестает быть массивом. Если конструктор не вызван, то объект просто неинициализированный, обращение к его содержимому - UB. Если нет такого обращения, то никакого UB нет. Нет никакого правила, что все элементы массива должны быть инициализированы при создании массива, а иначе это не массив. Поэтому, если есть кусок памяти в котором может находиться массив заданного размера, и есть указатель на массив, то с точки зрения юзера этого указателя - это и есть массив, и дальше к этому и применяются вышеприведенные правила про то что нельзя обращаться за пределы массива, или нельзя обращаться элементам не инициализировав их. Все остальный фантазии прозвучавшие в этом топике про то что "массива нет" - бред сивой кобылы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:44 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_deva guestпропущено... Ты вроде был за то, что VLA разрешены. Allowed красным выделял. В каком разделе стандарта C++ явно оговорено данное отличие?Тебе гнусы написали, что VLA разрешены в C90 режиме компилятора g++.Ты совсем недавно писал, что C это часть стандарта C++ и поэтому в C++ разрешены VLA. Даже демонстрировал код, который якобы должен был это подтвердить. rdb_devЧего тебе еще?Покажи, где стандарт C++ явно оговорил запрет VLA. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2018, 14:48 |
|
|
start [/forum/topic.php?fid=57&msg=39654030&tid=2017692]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 390ms |
0 / 0 |