Re[5]: Haters gonna hate but with proofs
От: CodeMonkey  
Дата: 16.01.19 18:46
Оценка: :)
Здравствуйте, ononim, Вы писали:

O>Ее никогда и не было. Это human-level абстракция.


Какая еще абстракция? Препроцессор уже отменили, что ли?
Re[5]: Haters gonna hate but with proofs
От: _vanger_  
Дата: 17.01.19 01:01
Оценка:
Здравствуйте, rg45, Вы писали:

R>У меня в этом плане любимая вот эта, что выведет программа:


R>https://ideone.com/w3ZXdB


Ух ты! А почему, когда длины строк равны, они интерпретируются как string, а если различны, как char*?
Re[4]: Haters gonna hate but with proofs
От: reversecode google
Дата: 17.01.19 03:59
Оценка: 1 (1)
http://cppquiz.org/
Re[6]: Haters gonna hate but with proofs
От: Voivoid Россия  
Дата: 17.01.19 06:09
Оценка: 2 (1) +2
Здравствуйте, _vanger_, Вы писали:

__>Ух ты! А почему, когда длины строк равны, они интерпретируются как string, а если различны, как char*?

в первом вызове аргументы char[6] и char[6]
во втором вызове аргументы char[6] и char[7]

Во втором случае вызывается не шаблонная функция т.к. типы char[6] и char[7] разные
Re[10]: Haters gonna hate but with proofs
От: Igore Россия  
Дата: 17.01.19 06:19
Оценка:
Здравствуйте, netch80, Вы писали:

N>Звучит как тяжёлая недоработка конкретных рантаймов.

N>Потому что если он упирается в жёсткий предел памяти, он обязан вызвать полный GC. Но желательно делать инкрементальный и раньше.
N>Мне в этом смысле особенно нравится, как сделано в Lua. По умолчанию — превысили двойной размер после прошлой сборки — запускаем новую. Тяжёлого разрастания без причин там в итоге не бывает, есть чёткое представление, на сколько делать запас.
N>В ранних Java, да, было с этим хуже, там обычно пока операционка не скажет "фиг тебе, а не страничка", не собиралось. Но и то исправили достаточно давно.

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

N>Не знаю про типовые реализации JS, но в дотнете, вроде бы, такое есть везде?
Бегло почитал, вроде сейчас GC поумнели и циклические ссылки всегда разруливаются, в JS было по таймеру создание разных объектов ссылающихся друг на друга и на DOM, а в C# на каждое подключение, и плюс там еще с замыканием что то было, давно это было подробностей не помню, GC точно вызывался и отрабатывал, но он не мог убрать эти объекты, искать было трудней чем в С++.

I>>rapidjson, boost, qt5, xerces, xalan, xsec, sqlite, odb, openssl, curl, protobuf, ncreport, zlib, soci, librsync


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

Это Oracle C++ Call Interface? Хм, не было у нас с ним проблем, правда и запросы были простые, с libpqxx тоже проблем нет, с MySql только через Qt работал, тоже ничего не текло.
Re[6]: Haters gonna hate but with proofs
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.01.19 06:51
Оценка: 2 (1) +1
Здравствуйте, _vanger_, Вы писали:

R>>У меня в этом плане любимая вот эта, что выведет программа:


R>>https://ideone.com/w3ZXdB


__>Ух ты! А почему, когда длины строк равны, они интерпретируются как string, а если различны, как char*?


Не как string, а как char[6].
The God is real, unless declared integer.
Re[6]: Haters gonna hate but with proofs
От: rg45 СССР  
Дата: 17.01.19 08:00
Оценка: 2 (1)
Здравствуйте, _vanger_, Вы писали:

__>Ух ты! А почему, когда длины строк равны, они интерпретируются как string, а если различны, как char*?


Строковые литералы имеют тип массивов. А это значит, что литералы разной длины имеют разный тип. Такой вот ускользающий от внимания факт. И фокус в том, что во втором варианте используются неконстантные указатели. Поэтому шаблонный вариант дает лучшее соответствие типов формальных и фактических параметнов, но подходит он только для литералов одинакового типа, то есть, одинаковой длины. Но если мы добавим еще одну перегрузку с константыми указателями, то в обоих случаях будет использоваться только она, как дающая наилучшее соответствие формальных и фактических параметров:

https://ideone.com/CCBEMy

#include <iostream>

template <typename T>
int foo(T&, T&) { return 1; }

int foo(char*, char*) { return 2; }

int foo(const char*, const char*) { return 3; }


int main()
{
   std::cout << foo("Hello", "World") << std::endl;
   std::cout << foo("Hello", "World!") << std::endl;
}
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 17.01.2019 9:40 rg45 . Предыдущая версия . Еще …
Отредактировано 17.01.2019 9:38 rg45 . Предыдущая версия .
Отредактировано 17.01.2019 8:01 rg45 . Предыдущая версия .
Re[20]: Haters gonna hate but with proofs
От: wander  
Дата: 17.01.19 18:02
Оценка:
Здравствуйте, netch80, Вы писали:

N>Но понять-то меня вполне можете? Не обязательно же принимать только то, что прочувствовал на собственной шкуре.

Ну если я с вами не согласен в некоторых аспектах, то это не значит, что я не могу вас понять
Re[5]: Haters gonna hate but with proofs
От: N. I.  
Дата: 17.01.19 19:18
Оценка: 13 (3)
rg45:

R>У меня в этом плане любимая вот эта, что выведет программа:


R>https://ideone.com/w3ZXdB


R>
R>#include <iostream>

R>template <typename T>
R>int foo(T&, T&) { return 1; }

R>int foo(char*, char*) { return 2; }

int main()
{
   std::cout << foo("Hello", "World") << std::endl;
   std::cout << foo("Hello", "World!") << std::endl;
}

Как вариант — будет ошибка компиляции, т.к. эта программа неправильная
https://wandbox.org/permlink/xUfzEqBcJVafLl1i
Re[6]: Haters gonna hate but with proofs
От: rg45 СССР  
Дата: 17.01.19 19:38
Оценка:
Здравствуйте, N. I., Вы писали:

NI>Как вариант — будет ошибка компиляции, т.к. эта программа неправильная


Отследить бы еще, начиная с какого момента это преобразование стало запрещенным.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[7]: Haters gonna hate but with proofs
От: N. I.  
Дата: 17.01.19 20:29
Оценка: 18 (1)
rg45:

R>Отследить бы еще, начиная с какого момента это преобразование стало запрещенным.


http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n3000.pdf — см. п. 4.2.
Re[8]: Haters gonna hate but with proofs
От: rg45 СССР  
Дата: 17.01.19 20:54
Оценка:
Здравствуйте, N. I., Вы писали:

NI>http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n3000.pdf — см. п. 4.2.


Жаль, такая классная загадка была
--
Не можешь достичь желаемого — пожелай достигнутого.
Re: Haters gonna hate but with proofs
От: B0FEE664  
Дата: 21.01.19 14:21
Оценка: 33 (2) +2 :))) :))) :)
Здравствуйте, bc_kaya, Вы писали:

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

_>Поделитесь впечатлением и опытом программирования с использованием языка С++?

C++ — язык сложный, не все могут его осилить. Собственно, никто не знает C++. Однажды создателя спросили, на сколько он оценивает свои знания С++ по десятибалльной шкале. Страуструп ответил, что 7 или менее. Люди с завышенным самолюбием не могут осилить С++. (Да, они тоже не могут). Поэтому люди с завышенным самолюбием недолюбливают плюсы, но они — не весь мир. Некоторые настоящие программисты годами изучали этот язык, писали примеры, экспериментировали с языком, даже писали компиляторы С++. И вот, когда казалось, что всё уже изучено и достигнуто, был принят новый стандарт. А потом ещё один и ещё один. И ещё один стандарт на подходе. Язык изменился. Трижды изменилась парадигма языка, но идеал не достигнут. С++ нет сборки мусора, поэтому его не любят грязнули. В С++ нет менеджера указателей, поэтому его не любят менеджеры. В С++ есть шаблонные и абстрактные типы, поэтому ассемблерщики и С-шники не любят С++ (они не понимают зачем всё это нужно). Конечно, в С++ можно отстрелить себе ногу, но мы же не дети, чтобы сидеть в песочнице.
И каждый день — без права на ошибку...
Re[12]: Haters gonna hate but with proofs
От: B0FEE664  
Дата: 21.01.19 14:33
Оценка:
Здравствуйте, kaa.python, Вы писали:

S>>А другой поток?

KP>А что с ним? Почему он как-то может повлиять?

Откроет тот же файл, переименует папку, в котором файл лежал.
Или юзер не размонтировав выдернет флешку...
И каждый день — без права на ошибку...
Re[6]: Haters gonna hate but with proofs
От: Ablex  
Дата: 07.02.21 01:25
Оценка: +2
Здравствуйте, Somescout, Вы писали.

Прочитал ветку 5 раз, так и не понял чего ты на него взъелся.
Re[7]: Haters gonna hate but with proofs
От: Somescout  
Дата: 07.02.21 06:10
Оценка: -1
Здравствуйте, Ablex, Вы писали:

A>Прочитал ветку 5 раз, так и не понял чего ты на него взъелся.

Попробуйте ещё раз 10 перечитать — возможно поймёте.
ARI ARI ARI... Arrivederci!
Re[2]: Haters gonna hate but with proofs
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.02.21 06:46
Оценка: +1
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, bc_kaya, Вы писали:


_>>за что весь мир недолюбливает плюсы.


С>Image: rGNam.jpg


С>PS: Минусующим правда глаза колет


А причем тут плюсы?
Маньяк Робокряк колесит по городу
Re[13]: Haters gonna hate but with proofs
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.02.21 06:57
Оценка:
Здравствуйте, rg45, Вы писали:

R>P.S. При этом заметь, я не иду в атаку с криками "Долой C#!" и "Java — отстой!". Повторюсь: в каждом инструменте есть свои слабые и сильные стороны и нужно просто уметь их исполльзовать.


Можно я за тебя?

C# — отстой!
Java — отстой!

Даже вот kotlin, он вкусненький, если после Java, но тоже — отстой
Маньяк Робокряк колесит по городу
Re[9]: Haters gonna hate but with proofs
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.02.21 07:15
Оценка: +1
Здравствуйте, netch80, Вы писали:

K>>Си я даже не рассматриваю как язык высокоуровневой разработки. Мне кажется, он безнадёжно устарел даже на низком уровне, где сейчас почти всегда практичнее взять хотя бы тот же C++, не говоря о Rust и т.п. Про покойника или хорошо, или ничего.


N>C++ для низкого уровня часто годится только в очень специфическом варианте "без исключений, без RTTI". После этого C может быть и легче использовать.


Нормально на плюсиках под STM32 пишу. RTTI — оно просто не нужно, всё обычно статически создаётся, или автоматические переменные. Но без плюсиков я бы повесился.

И да, немалая часть того же кода работает в прогах на нормальном компе. Это тупо удобно, когда один и тот же код работает и на контроллере, и на компе, и ошибки быстрее выявляются
Маньяк Робокряк колесит по городу
Re[2]: Haters gonna hate but with proofs
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.02.21 07:17
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Думаю, потому недолюбливает, что С++ требует предельной внимательности и аккуратности.


Это не так. Я давно уже забил на внимательность и аккуратность, хреначу на плюсиках как бог на душу положит. И, внезапно, всё работает
Маньяк Робокряк колесит по городу
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.