@ProCxx

Страница 843 из 2477
Александр
06.05.2017
16:58:57
Было бы очень круто делать условную компиляцию на подобных ифах. Вместо возни с #ifdef

Surreal
06.05.2017
16:59:50
Кто-то из JetBrains хотел добавить аттрибуты. Это аналогичная идея, видимо.

Было бы очень круто делать условную компиляцию на подобных ифах. Вместо возни с #ifdef
http://blog.tartanllama.xyz/c++/2016/12/12/if-constexpr/ Можно, но только внутри методов.

Александр
06.05.2017
17:03:11
http://blog.tartanllama.xyz/c++/2016/12/12/if-constexpr/ Можно, но только внутри методов.
Это понятно. Я про куски классов, как в примере выше.

Google
Surreal
06.05.2017
17:06:43
Это понятно. Я про куски классов, как в примере выше.
Ага. Избавит от *_linux.hpp и *_win.hpp. Но это все мечты, т.к. это не просто фича языка, которые не особо просто в стандарт добавить, это еще поломает все компиляторы и код будет очень страшный и странный, когда уровень вложенности больше 1 будет.

Grigor
06.05.2017
17:13:06
Нинраиццо посонам

Surreal
06.05.2017
17:13:57
А чем ifdef то не угодил
Ну, Страуструпу Си не угодил и появился C++. Надо как-то развиваться же.

MrSmeet
06.05.2017
17:15:08
Ну, Страуструпу Си не угодил и появился C++. Надо как-то развиваться же.
Проблема жи решена, зачем решать проблему которой в реальности нет, просто потому, что тебе синтаксис не понравился, хотя и эта проблема решаема

MrSmeet
06.05.2017
17:15:42
Александр
06.05.2017
17:15:55
А чем ifdef то не угодил
1. Слабая читаемость 2. Сложные конструкции неудобно или невозможно реализовать 3. Препроцессор - зло 4. Не получится нормально оперировать типами

MrSmeet
06.05.2017
17:17:00
1. Слабая читаемость 2. Сложные конструкции неудобно или невозможно реализовать 3. Препроцессор - зло 4. Не получится нормально оперировать типами
1. Это ваше имхо, на мой взгляд как раз хорошая читаемость, которая подчеркивает опасность деяния. 2 Ну таки сложные да, а что там реализовать то не получилось? 3 Почему? 4 А зачем? И всегда можно const bool flag = true И компилятор все вырежет

Surreal
06.05.2017
17:18:20
На вкус и цвет. Я был бы рад жить в пещере и охотиться на мамонтов, но человек решил эволюционировать. Вам нравится ifdef, другим людям он не нравится и они хотят его эволюционировать.

MrSmeet
06.05.2017
17:19:25
На вкус и цвет. Я был бы рад жить в пещере и охотиться на мамонтов, но человек решил эволюционировать. Вам нравится ifdef, другим людям он не нравится и они хотят его эволюционировать.
Да я не спорю, ifdef не идеален, но аргументы против него какие-то хипстерско детские. Просто эволюция должна быть оправданной, а то как мы знаем черви тоже результат эволюции, можно конечно идти по пути упращения и деградации но зачем?

Surreal
06.05.2017
17:20:10
Ну, auto добавили, std::array добавили, хотя потребности в них не было.

Google
Surreal
06.05.2017
17:23:07
Добавили даже 1'000'000

MrSmeet
06.05.2017
17:23:07
auto очень полезен когда тип заведомо известен программисту и читающему код, и приходиться катать колбасы, тот же итератор, array тоже крайне полезен

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

Александр
06.05.2017
17:28:03
1. Это ваше имхо, на мой взгляд как раз хорошая читаемость, которая подчеркивает опасность деяния. 2 Ну таки сложные да, а что там реализовать то не получилось? 3 Почему? 4 А зачем? И всегда можно const bool flag = true И компилятор все вырежет
Нельзя в условной компиляции методов/полей класса использовать условия, зависящие от констант времени компиляции - трейтов, constexpr, типов и прочего. Это основная проблема

MrSmeet
06.05.2017
17:28:31
Ну вот, scoped global constexpr if тоже теоретически чтение кода улучшит. И поддержку.
У яндекса есть сайт с хотелками для внесения с тандарт создайте кейс там да и делов то

Александр
06.05.2017
17:29:14
Я не против ifdef. Он хорош для своих целей. Но добавить условную компиляцию в meta-часть нужно.

MrSmeet
06.05.2017
17:30:13
Аргументы в продакшене возникают, а не на кухне, когда приходится это легаси поддерживать
Рефактор тулз вам в помощь, я не понимаю че все ноут, но сбегайте на сайт яндекса с ++ хотелками, создайте тред. Набахаем чатом кармы и делов то

Surreal
06.05.2017
17:30:18
У яндекса есть сайт с хотелками для внесения с тандарт создайте кейс там да и делов то
Я сначала хотел выяснить, адекватно ли такое вообще предлагать. И, как оказалось, мнения разделились.

MrSmeet
06.05.2017
17:31:17
Я сначала хотел выяснить, адекватно ли такое вообще предлагать. И, как оказалось, мнения разделились.
Предлагать всегда адекватно. Там еще люди ближе к теории посмотрят и закоментируют в академическом сите все лучше телеграммовых теоретиков

Александр
06.05.2017
17:31:33
Вот синтаксис и обратную совместимость надо обдумывать

MrSmeet
06.05.2017
17:33:18
Нате за вас загуглил https://stdcpp.ru/

Потом киньте линк я яростно плюсану

Surreal
06.05.2017
17:35:15
Вот синтаксис и обратную совместимость надо обдумывать
Концепты же еще добавлять хотят, надо будет посмотреть, можно ли их тоже в scope завернуть.

Alex Фэils?︙
06.05.2017
17:35:40
Нате за вас загуглил https://stdcpp.ru/
я тут эту сслку устал постить. и в канале @ProCxxNews )))))

MrSmeet
06.05.2017
17:38:12
я тут эту сслку устал постить. и в канале @ProCxxNews )))))
Ну дак кого он ждет? Возникла знаковая идея пусть бежит постит. От того шо он в телеге поохает его хотелка в япе не появиться, а это рили вей. Если всем понравиться, они уж допрут до реализации не ломающей совместимость, ключевое слово в крайности добавят, не помрем

Alex Фэils?︙
06.05.2017
17:40:20
надо идею обсудить еще. а тут это бстрее делать. к тому же я с авторами договорился, что тут тож можно обсудить, чтоб на сайт улучшенные версии идей класть

Google
/dev
06.05.2017
17:50:38
Но выглядит неплохим сахаром

MrSmeet
06.05.2017
18:01:37
Скоро C++ будет знать -1 человек

Grigor
06.05.2017
18:03:33
MrSmeet
06.05.2017
18:04:36
std::numeric_limits<size_t>::max?
Нет, просто его уже теоретически знает только один человек и то не знает, но так как он стар и не вечен...

MrSmeet
06.05.2017
18:07:14
Никто не знает C++, чего уж там
Я понять не могу только одного, почему все движеться в сторону усложнения а не упрощения и развития тулов. Сколько жду и все нет чертовых пакетов

Grigor
06.05.2017
18:08:09
А В СТАНДАРТЕ НЕТ

MrSmeet
06.05.2017
18:08:10
Но разная реализация и комитет упоролся какие добавлять

Alexander
06.05.2017
18:08:24
А В СТАНДАРТЕ НЕТ
а ты возьми и стандартизируй

MrSmeet
06.05.2017
18:08:25
Я на GCC

Alexander
06.05.2017
18:08:43
процесс стандартизации крайне медленный, и я думаю очевидно, почему

Grigor
06.05.2017
18:08:43
и я на gcc,причем на 4.6 :С

Alexander
06.05.2017
18:09:05
и я на gcc,причем на 4.6 :С
и вы просите модули, когда сидите на некрокомпилах?

Grigor
06.05.2017
18:09:11
я не прошу

Admin
ERROR: S client not available

MrSmeet
06.05.2017
18:09:16
Вот тока не начинай а

Google
Grigor
06.05.2017
18:09:17
я и без них прекрасно себя чувствую)

если сильно повезет и мы взлетим на gcc по новее, то хотя бы 14е плюсы появятся

MrSmeet
06.05.2017
18:10:25
Да gcc топ компилятор. Ядро линя и почти весь открытый на нем вертят

Grigor
06.05.2017
18:10:43
топ, только при переезде он говорит что мы одно большое деприкейтед ;D

Alexander
06.05.2017
18:11:01
Grigor
06.05.2017
18:11:27
ну шлангом по-моему ядро все еще не соберешь

Alexander
06.05.2017
18:11:43
Alex Фэils?︙
06.05.2017
18:11:54
виндовса

Alexander
06.05.2017
18:12:21
виндовса
ща git clone сделаю, и попробую сбилдить)

MrSmeet
06.05.2017
18:12:21
а чем другие компиляторы не угодили?
Слева стул с модным и навороченным а справа с проверенным и проектным, на какой стул сам седяшь, на какой комрада посадишь

Roman
06.05.2017
18:13:34
MrSmeet
06.05.2017
18:14:09
Evgeniy
06.05.2017
18:14:14
ну шлангом по-моему ядро все еще не соберешь
ну потому что ядро и гцц сильно друг под друга заточены

Alexander
06.05.2017
18:14:18
Clang vs GCC (GNU Compiler Collection) Pro's of GCC vs clang: GCC supports languages that clang does not aim to, such as Java, Ada, FORTRAN, Go, etc. GCC supports more targets than LLVM. GCC supports many language extensions, some of which are not implemented by Clang. For instance, in C mode, GCC supports nested functions and has an extension allowing VLAs in structs. Pro's of clang vs GCC: The Clang ASTs and design are intended to be easily understandable by anyone who is familiar with the languages involved and who has a basic understanding of how a compiler works. GCC has a very old codebase which presents a steep learning curve to new developers. Clang is designed as an API from its inception, allowing it to be reused by source analysis tools, refactoring, IDEs (etc) as well as for code generation. GCC is built as a monolithic static compiler, which makes it extremely difficult to use as an API and integrate into other tools. Further, its historic design and current policy makes it difficult to decouple the front-end from the rest of the compiler. Various GCC design decisions make it very difficult to reuse: its build system is difficult to modify, you can't link multiple targets into one binary, you can't link multiple front-ends into one binary, it uses a custom garbage collector, uses global variables extensively, is not reentrant or multi-threadable, etc. Clang has none of these problems. Clang does not implicitly simplify code as it parses it like GCC does. Doing so causes many problems for source analysis tools: as one simple example, if you write "x-x" in your source code, the GCC AST will contain "0", with no mention of 'x'. This is extremely bad for a refactoring tool that wants to rename 'x'. Clang can serialize its AST out to disk and read it back into another program, which is useful for whole program analysis. GCC does not have this. GCC's PCH mechanism (which is just a dump of the compiler memory image) is related, but is architecturally only able to read the dump back into the exact same executable as the one that produced it (it is not a structured format). Clang is much faster and uses far less memory than GCC. Clang has been designed from the start to provide extremely clear and concise diagnostics (error and warning messages), and includes support for expressive diagnostics. Modern versions of GCC have made significant advances in this area, incorporating various Clang features such as preserving typedefs in diagnostics and showing macro expansions, but GCC is still catching up. GCC is licensed under the GPL license. clang uses a BSD license, which allows it to be embedded in software that is not GPL-licensed. Clang inherits a number of features from its use of LLVM as a backend, including support for a bytecode representation for intermediate code, pluggable optimizers, link-time optimization support, Just-In-Time compilation, ability to link in multiple code generators, etc. Clang's support for C++ is more compliant than GCC's in many ways. Clang supports many language extensions, some of which are not implemented by GCC. For instance, Clang provides attributes for checking thread safety and extended vector types.

https://clang.llvm.org/comparison.html#gcc

так проще

MrSmeet
06.05.2017
18:17:27
Это все слова, ты нечего не сможешь написать кроме них. Ну и Java не язык. А так, всегда защитники одной вещи могут найти 10 серьезных аргументов в пользу за или против, то же справедливо и наоборот.

Surreal
06.05.2017
18:19:32
GCC только Java 1.* полностью поддерживал. В 7.1 версии выпилили и эту поддержку.

Google
Grigor
06.05.2017
18:19:50
1.2 вроде, лол

MrSmeet
06.05.2017
18:20:36
И правильно, не нужна богомерзкая жаба

MrSmeet
06.05.2017
18:25:06
Что занчит я что-то защищащю? я просто показываю, что на одном gcc мир не сошёлся
Ну таки да, GCC есть врожденные болячки. Но вот лечить их вряд ли будут, кодовая база слишком большая.

Страница 843 из 2477