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

From WikiProjectMed
Jump to navigation Jump to search

promotional edits for "D"

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]

This is the discussion page for an anonymous user who has not created an account yet, or who does not use it. We therefore have to use the numerical IP address to identify them. Such an IP address can be shared by several users. If you are an anonymous user and feel that irrelevant comments have been directed at you, please create an account or log in to avoid future confusion with other anonymous users.