-
-
Save unitycoder/9164c682183abae2d8abe1a83b55b424 to your computer and use it in GitHub Desktop.
Revisions
-
bkaradzic revised this gist
Feb 27, 2022 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -41,7 +41,7 @@ What should I use? - Don't use RTTI. - Don't use C++ runtime wrapper for C runtime includes (`<cstdio>`, `<cmath>`, etc.), use C runtime instead (`<stdio.h>`, `<math.h>`, etc.) - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. See [CppCon 2015: Andrei Alexandrescu "std::allocator Is to Allocation what std::vector Is to Vexation"](https://www.youtube.com/watch?v=LIb3L4vKZ7U) talk, and [Why many AAA gamedev studios opt out of the STL](https://web.archive.org/web/20220227163717/https://threadreaderapp.com/thread/1497768472184430600.html) thread for more info. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 ([per Jason Turner](http://archive.md/2018.02.01-171248/https://twitter.com/lefticus/status/958931109009440768) cppbestpractices.com curator) -
bkaradzic revised this gist
Jan 16, 2022 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -50,7 +50,7 @@ Is it safe to use any of Modern C++<year> features yet? Due to lag of adoption of C++ standard by compilers, OS distributions, etc. it's usually not possible to start using new useful language features immediately. General guideline is: if current year is C++_year_+5 then it's safe to start **selectively** using C++_year_'s features. For example, if standard is C++11, and current year >= 2016 then it's probably safe. If standard required to compile your code is C++17 and year is 2016 then obviously you're practicing "Resume Driven Development" methodology. If you're doing this for open source project, then you're not creating something others can use. **UPDATE** As of January 14th 2022, Orthodox C++ committee approved use of C++17. Any other similar ideas? ------------------------ -
bkaradzic revised this gist
Sep 28, 2021 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -41,7 +41,7 @@ What should I use? - Don't use RTTI. - Don't use C++ runtime wrapper for C runtime includes (`<cstdio>`, `<cmath>`, etc.), use C runtime instead (`<stdio.h>`, `<math.h>`, etc.) - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. See [CppCon 2015: Andrei Alexandrescu "std::allocator Is to Allocation what std::vector Is to Vexation"](https://www.youtube.com/watch?v=LIb3L4vKZ7U) talk for more info. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 ([per Jason Turner](http://archive.md/2018.02.01-171248/https://twitter.com/lefticus/status/958931109009440768) cppbestpractices.com curator) -
bkaradzic revised this gist
Sep 28, 2021 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -41,7 +41,7 @@ What should I use? - Don't use RTTI. - Don't use C++ runtime wrapper for C runtime includes (`<cstdio>`, `<cmath>`, etc.), use C runtime instead (`<stdio.h>`, `<math.h>`, etc.) - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. See CppCon 2015 talk ["std::allocator Is to Allocation what std::vector Is to Vexation"](https://www.youtube.com/watch?v=LIb3L4vKZ7U) for more info. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 ([per Jason Turner](http://archive.md/2018.02.01-171248/https://twitter.com/lefticus/status/958931109009440768) cppbestpractices.com curator) -
bkaradzic revised this gist
May 21, 2020 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -61,7 +61,7 @@ Any other similar ideas? - [Why Your C++ Should Be Simple](http://archive.md/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) - [C++, it’s not you. It’s me.](https://web.archive.org/web/20190227061553/https://c0de517e.blogspot.com/2019/02/c-its-not-you-its-me.html) - ["Keep It C-mple" Alexander Radchenko Sydney C++ Meetup](https://www.youtube.com/watch?v=lTXHOOwfTAo) - [A dialect of C++](https://web.archive.org/web/20200521234043/https://satish.net.in/20180302/) Code examples ------------- -
bkaradzic revised this gist
May 21, 2020 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -61,6 +61,7 @@ Any other similar ideas? - [Why Your C++ Should Be Simple](http://archive.md/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) - [C++, it’s not you. It’s me.](https://web.archive.org/web/20190227061553/https://c0de517e.blogspot.com/2019/02/c-its-not-you-its-me.html) - ["Keep It C-mple" Alexander Radchenko Sydney C++ Meetup](https://www.youtube.com/watch?v=lTXHOOwfTAo) - ["A dialect of C++"](https://web.archive.org/web/20200521234043/https://satish.net.in/20180302/) Code examples ------------- -
bkaradzic revised this gist
Feb 7, 2020 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -60,6 +60,7 @@ Any other similar ideas? - [Sane C++](http://archive.md/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) - [Why Your C++ Should Be Simple](http://archive.md/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) - [C++, it’s not you. It’s me.](https://web.archive.org/web/20190227061553/https://c0de517e.blogspot.com/2019/02/c-its-not-you-its-me.html) - ["Keep It C-mple" Alexander Radchenko Sydney C++ Meetup](https://www.youtube.com/watch?v=lTXHOOwfTAo) Code examples ------------- -
bkaradzic revised this gist
Jul 31, 2019 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -70,4 +70,6 @@ Code examples - [dear imgui](https://github.com/ocornut/imgui) - [bgfx](https://github.com/bkaradzic/bgfx) - [TheForge](https://github.com/ConfettiFX/The-Forge) - [Oryol](https://github.com/floooh/oryol) - [Network Next SDK](https://github.com/networknext/sdk)
-
bkaradzic revised this gist
Jul 30, 2019 . 1 changed file with 7 additions and 8 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](http://archive.md/2016.05.17-214038/https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd) ("Why I don't spend time with Modern C++ anymore" archived LinkedIn article).  @@ -33,7 +33,7 @@ What should I use? ------------------ - C-like C++ is good start, if code doesn't require more complexity don't add unnecessary C++ complexities. In general case code should be readable to anyone who is familiar with C language. - Don't do [this](http://archive.md/2014.04.28-125041/http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/design.html), the end of "design rationale" in Orthodox C++ should be immedately after "Quite simple, and it is usable. **EOF**". - Don't use [exceptions](https://web.archive.org/web/20190116034706/http://www.lighterra.com/papers/exceptionsharmful/). > Exception handling is the only C++ language feature which requires significant support from a complex runtime system, and it's the only C++ feature that has a runtime cost even if you don't use it – sometimes as additional hidden code at every object construction, destruction, and try block entry/exit, and always by limiting what the compiler's optimizer can do, often quite significantly. Yet C++ exception specifications are not enforced at compile time anyway, so you don't even get to know that you didn't forget to handle some error case! And on a stylistic note, the exception style of error handling doesn't mesh very well with the C style of error return codes, which causes a real schism in programming styles because a great deal of C++ code must invariably call down into underlying C libraries. @@ -43,7 +43,7 @@ What should I use? - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 ([per Jason Turner](http://archive.md/2018.02.01-171248/https://twitter.com/lefticus/status/958931109009440768) cppbestpractices.com curator) Is it safe to use any of Modern C++<year> features yet? ------------------------------------------------------- @@ -56,9 +56,9 @@ Any other similar ideas? ------------------------ - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Nominal C++](http://archive.md/2016.08.07-162105/https://namandixit.github.io/blog/nominal-c++/) - [Sane C++](http://archive.md/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) - [Why Your C++ Should Be Simple](http://archive.md/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) - [C++, it’s not you. It’s me.](https://web.archive.org/web/20190227061553/https://c0de517e.blogspot.com/2019/02/c-its-not-you-its-me.html) Code examples @@ -70,5 +70,4 @@ Code examples - [dear imgui](https://github.com/ocornut/imgui) - [bgfx](https://github.com/bkaradzic/bgfx) - [TheForge](https://github.com/ConfettiFX/The-Forge) - [Oryol](https://github.com/floooh/oryol) -
bkaradzic revised this gist
Jul 19, 2019 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -70,3 +70,5 @@ Code examples - [dear imgui](https://github.com/ocornut/imgui) - [bgfx](https://github.com/bkaradzic/bgfx) - [TheForge](https://github.com/ConfettiFX/The-Forge) - [Oryol](https://github.com/floooh/oryol) -
bkaradzic revised this gist
Jul 13, 2019 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -69,3 +69,4 @@ Code examples - [Qt](https://github.com/qtproject) (when built with no-rtti, no-exceptions) - [dear imgui](https://github.com/ocornut/imgui) - [bgfx](https://github.com/bkaradzic/bgfx) - [TheForge](https://github.com/ConfettiFX/The-Forge) -
bkaradzic revised this gist
Feb 27, 2019 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -59,6 +59,7 @@ Any other similar ideas? - [Nominal C++](http://archive.today/2016.08.07-162105/https://namandixit.github.io/blog/nominal-c++/) - [Sane C++](http://archive.today/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) - [Why Your C++ Should Be Simple](http://archive.fo/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) - [C++, it’s not you. It’s me.](https://web.archive.org/web/20190227061553/https://c0de517e.blogspot.com/2019/02/c-its-not-you-its-me.html) Code examples ------------- -
bkaradzic revised this gist
Feb 26, 2019 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -11,6 +11,8 @@ Why not Modern C++? Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](http://archive.today/2016.05.17-214038/https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd) ("Why I don't spend time with Modern C++ anymore" archived LinkedIn article).  Why use Orthodox C++? --------------------- -
bkaradzic revised this gist
Jan 16, 2019 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](http://archive.today/2016.05.17-214038/https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd) ("Why I don't spend time with Modern C++ anymore" archived LinkedIn article). Why use Orthodox C++? --------------------- @@ -31,7 +31,7 @@ What should I use? ------------------ - C-like C++ is good start, if code doesn't require more complexity don't add unnecessary C++ complexities. In general case code should be readable to anyone who is familiar with C language. - Don't do [this](http://archive.today/2014.04.28-125041/http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/design.html), the end of "design rationale" in Orthodox C++ should be immedately after "Quite simple, and it is usable. **EOF**". - Don't use [exceptions](https://web.archive.org/web/20190116034706/http://www.lighterra.com/papers/exceptionsharmful/). > Exception handling is the only C++ language feature which requires significant support from a complex runtime system, and it's the only C++ feature that has a runtime cost even if you don't use it – sometimes as additional hidden code at every object construction, destruction, and try block entry/exit, and always by limiting what the compiler's optimizer can do, often quite significantly. Yet C++ exception specifications are not enforced at compile time anyway, so you don't even get to know that you didn't forget to handle some error case! And on a stylistic note, the exception style of error handling doesn't mesh very well with the C style of error return codes, which causes a real schism in programming styles because a great deal of C++ code must invariably call down into underlying C libraries. @@ -54,8 +54,8 @@ Any other similar ideas? ------------------------ - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Nominal C++](http://archive.today/2016.08.07-162105/https://namandixit.github.io/blog/nominal-c++/) - [Sane C++](http://archive.today/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) - [Why Your C++ Should Be Simple](http://archive.fo/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) Code examples -
bkaradzic revised this gist
Jan 16, 2019 . 1 changed file with 3 additions and 5 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -32,13 +32,11 @@ What should I use? - C-like C++ is good start, if code doesn't require more complexity don't add unnecessary C++ complexities. In general case code should be readable to anyone who is familiar with C language. - Don't do [this](http://archive.is/2014.04.28-125041/http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/design.html), the end of "design rationale" in Orthodox C++ should be immedately after "Quite simple, and it is usable. **EOF**". - Don't use [exceptions](https://web.archive.org/web/20190116034706/http://www.lighterra.com/papers/exceptionsharmful/). > Exception handling is the only C++ language feature which requires significant support from a complex runtime system, and it's the only C++ feature that has a runtime cost even if you don't use it – sometimes as additional hidden code at every object construction, destruction, and try block entry/exit, and always by limiting what the compiler's optimizer can do, often quite significantly. Yet C++ exception specifications are not enforced at compile time anyway, so you don't even get to know that you didn't forget to handle some error case! And on a stylistic note, the exception style of error handling doesn't mesh very well with the C style of error return codes, which causes a real schism in programming styles because a great deal of C++ code must invariably call down into underlying C libraries. - Don't use RTTI. - Don't use C++ runtime wrapper for C runtime includes (`<cstdio>`, `<cmath>`, etc.), use C runtime instead (`<stdio.h>`, `<math.h>`, etc.) - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. -
bkaradzic revised this gist
Jan 16, 2019 . 1 changed file with 5 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -34,6 +34,11 @@ What should I use? - Don't do [this](http://archive.is/2014.04.28-125041/http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/design.html), the end of "design rationale" in Orthodox C++ should be immedately after "Quite simple, and it is usable. **EOF**". - Don't use exceptions. - Don't use RTTI. > Exception handling is the only C++ language feature which requires significant support from a complex runtime system, and it's the only C++ feature that has a runtime cost even if you don't use it – sometimes as additional hidden code at every object construction, destruction, and try block entry/exit, and always by limiting what the compiler's optimizer can do, often quite significantly. Yet C++ exception specifications are not enforced at compile time anyway, so you don't even get to know that you didn't forget to handle some error case! And on a stylistic note, the exception style of error handling doesn't mesh very well with the C style of error return codes, which causes a real schism in programming styles because a great deal of C++ code must invariably call down into underlying C libraries. https://web.archive.org/web/20190116034706/http://www.lighterra.com/papers/exceptionsharmful/ - Don't use C++ runtime wrapper for C runtime includes (`<cstdio>`, `<cmath>`, etc.), use C runtime instead (`<stdio.h>`, `<math.h>`, etc.) - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. -
bkaradzic revised this gist
Jan 15, 2019 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -45,6 +45,8 @@ Is it safe to use any of Modern C++<year> features yet? Due to lag of adoption of C++ standard by compilers, OS distributions, etc. it's usually not possible to start using new useful language features immediately. General guideline is: if current year is C++_year_+5 then it's safe to start **selectively** using C++_year_'s features. For example, if standard is C++11, and current year >= 2016 then it's probably safe. If standard required to compile your code is C++17 and year is 2016 then obviously you're practicing "Resume Driven Development" methodology. If you're doing this for open source project, then you're not creating something others can use. **UPDATE** As of January 14th 2019, Orthodox C++ committee approved use of C++14. Any other similar ideas? ------------------------ -
bkaradzic revised this gist
Feb 1, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -38,7 +38,7 @@ What should I use? - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 ([per Jason Turner](https://archive.fo/DiyFn) cppbestpractices.com curator) Is it safe to use any of Modern C++<year> features yet? ------------------------------------------------------- -
bkaradzic revised this gist
Feb 1, 2018 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -38,7 +38,7 @@ What should I use? - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 ([per Jason Turner](https://twitter.com/lefticus/status/958931109009440768) cppbestpractices.com curator) Is it safe to use any of Modern C++<year> features yet? ------------------------------------------------------- -
bkaradzic revised this gist
Feb 1, 2018 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -38,6 +38,7 @@ What should I use? - Don't use stream (`<iostream>`, `<stringstream>`, etc.), use printf style functions instead. - Don't use anything from STL that allocates memory, unless you don't care about memory management. - Don't use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity. - Wary of any features introduced in current standard C++<year>, ideally wait for improvements of those feature in next iteration of standard. Example `constexpr` from C++11 became usable in C++14 (per Jason Turner cppbestpractices.com curator https://twitter.com/lefticus/status/958931109009440768) Is it safe to use any of Modern C++<year> features yet? ------------------------------------------------------- -
bkaradzic revised this gist
Mar 19, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -50,7 +50,7 @@ Any other similar ideas? - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Nominal C++](http://archive.is/2016.08.07-162105/https://namandixit.github.io/blog/nominal-c++/) - [Sane C++](http://archive.is/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) - [Why Your C++ Should Be Simple](http://archive.fo/2017.03.19-055108/https://hacksoflife.blogspot.nl/2017/03/why-your-c-should-be-simple.html) Code examples ------------- -
bkaradzic revised this gist
Mar 19, 2017 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -50,6 +50,7 @@ Any other similar ideas? - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Nominal C++](http://archive.is/2016.08.07-162105/https://namandixit.github.io/blog/nominal-c++/) - [Sane C++](http://archive.is/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) - [Why Your C++ Should Be Simple](https://hacksoflife.blogspot.com/2017/03/why-your-c-should-be-simple.html) Code examples ------------- -
bkaradzic revised this gist
Aug 7, 2016 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](http://archive.is/2016.05.17-214038/https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd) ("Why I don't spend time with Modern C++ anymore" archived LinkedIn article). Why use Orthodox C++? --------------------- @@ -31,7 +31,7 @@ What should I use? ------------------ - C-like C++ is good start, if code doesn't require more complexity don't add unnecessary C++ complexities. In general case code should be readable to anyone who is familiar with C language. - Don't do [this](http://archive.is/2014.04.28-125041/http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/design.html), the end of "design rationale" in Orthodox C++ should be immedately after "Quite simple, and it is usable. **EOF**". - Don't use exceptions. - Don't use RTTI. - Don't use C++ runtime wrapper for C runtime includes (`<cstdio>`, `<cmath>`, etc.), use C runtime instead (`<stdio.h>`, `<math.h>`, etc.) -
bkaradzic revised this gist
Aug 7, 2016 . 1 changed file with 3 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -48,8 +48,9 @@ Any other similar ideas? ------------------------ - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Nominal C++](http://archive.is/2016.08.07-162105/https://namandixit.github.io/blog/nominal-c++/) - [Sane C++](http://archive.is/2016.08.07-162220/http://flohofwoe.blogspot.nl/2013/06/sane-c.html) Code examples ------------- -
bkaradzic revised this gist
Jul 31, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](https://archive.is/xYYvh) ("Why I don't spend time with Modern C++ anymore" archived LinkedIn article). Why use Orthodox C++? --------------------- -
bkaradzic revised this gist
Jul 31, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](https://archive.is/xYYvh). Why use Orthodox C++? --------------------- -
bkaradzic revised this gist
May 18, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++ too](https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd). Why use Orthodox C++? --------------------- -
bkaradzic revised this gist
May 18, 2016 . 1 changed file with 1 addition and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ Orthodox C++ (sometimes referred as **C+**) is minimal subset of C++ that improv Why not Modern C++? ------------------- Back in late 1990 we were also modern-at-the-time C++ hipsters, and we used latest features. We told everyone also they should use those features too. Over time we learned it's unnecesary to use some language features just because they are there, or features we used proved to be bad (like RTTI, exceptions, and streams), or it backfired by unnecessary code complexity. If you think this is nonsense, just wait few more years and [you'll hate Modern C++](https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd) too. Why use Orthodox C++? --------------------- @@ -49,7 +49,6 @@ Any other similar ideas? - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Sane C++](http://flohofwoe.blogspot.com/2013/06/sane-c.html) Code examples ------------- -
bkaradzic revised this gist
May 18, 2016 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -49,6 +49,7 @@ Any other similar ideas? - [Embedded C++](https://en.wikipedia.org/wiki/Embedded_C%2B%2B) - [Sane C++](http://flohofwoe.blogspot.com/2013/06/sane-c.html) - [Why I don't spend time with Modern C++ anymore](https://www.linkedin.com/pulse/why-i-dont-spend-time-modern-c-anymore-henrique-bucher-phd) Code examples ------------- @@ -57,4 +58,4 @@ Code examples - [DOOM 3 BFG](https://github.com/id-Software/DOOM-3-BFG) - [Qt](https://github.com/qtproject) (when built with no-rtti, no-exceptions) - [dear imgui](https://github.com/ocornut/imgui) - [bgfx](https://github.com/bkaradzic/bgfx) -
bkaradzic revised this gist
Jan 18, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -55,6 +55,6 @@ Code examples - Any C source that compiles with C++ compiler. - [DOOM 3 BFG](https://github.com/id-Software/DOOM-3-BFG) - [Qt](https://github.com/qtproject) (when built with no-rtti, no-exceptions) - [dear imgui](https://github.com/ocornut/imgui) - [bgfx](https://github.com/bkaradzic/bgfx)
NewerOlder