User talk:2A02:168:F609:1:BEDA:2803:4006:38FD

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

promotional edits for "D"[edit]

Information icon Hello, I'm Tedickey. I noticed that you added or changed content in an article, but you didn't provide a reliable source. It's been removed and archived in the page history for now, but if you'd like to include a citation and re-add it, please do so. You can have a look at referencing for beginners. If you think I made a mistake, you can leave me a message on my talk page. Thank you. TEDickey (talk) 18:51, 5 March 2023 (UTC)[reply]

There is many small features from C++11 onwards, that are clearly borrowed from D. Examples:
  • type inference (granted this is mostly generic trend, that was started mostly by C# in system languages)
  • Binary literals - https://www.ibm.com/community/z/wp-content/uploads/sites/14/2020/03/cc-n3472.pdf
  • Hex float literals
  • Numeric literal digit separators (probably influenced originally by Ada, but its usage in D, made C++ push it forward)
  • Return type deduction
  • Variable templates
  • generic lambdas
  • explicit override and final on methods
  • for each loops
  • Ranges https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4128.html
  • static assert
  • constexpr
  • if constexpr
  • contexpr functions
  • strongly typed enumerations
  • template aliases, and using type
  • extended string literals (wide ones, and unicode support)
  • raw strings
  • in class / struct member initalization
  • attributes (in the concept, including few standard attributes)
  • initializers in if and while (https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0305r1.html - cites Go, but D had it even earlier)
  • exception specifications being part of function type
  • three-way comparison, aka consistent comparison (however space-ship operator is borrowed from Ruby, while the C++ idea is based on opCmp from D)
  • deducing this
  • std::format https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html#ack
  • immediate functions
  • number of small features, are maybe not per se influenced by D, but rather were long overdue missing features, things like std::tuple, std::string_view, std::optional and std::variant types, are which were in D. However, these features are not exclusive to D, and were in many other languages before (like Python, Haskell, Ocaml). Some other more complex concepts, like std::span / std::array_view, were supported by D since its inception (using opSlice and opOpSlice), but C++ implementation is a bit different, and concept can be traced to other projects too (R, Numpy).
  • Number of non-ratified extensions, are also influenced by D: static reflection, struct, string and float value template parameters, runtime sized arrays, etc
These are not just coincidences. While C++ designers usually do not mention influences, they are clearly there. Designers of D (Walter Bright, and Andrei Alexandrescu) are well known in C++ community and by C++ designers.2A02:168:F609:1:BEDA:2803:4006:38FD (talk) 19:32, 16 March 2023 (UTC)[reply]