GetDunne Wiki

Notes from the desk of Shane Dunne, software development consultant

User Tools

Site Tools


modernizing_the_vanillajuce_code_base

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
modernizing_the_vanillajuce_code_base [2017/08/31 20:56]
shane
modernizing_the_vanillajuce_code_base [2017/09/01 19:49] (current)
shane [Newer C++ features and constructs]
Line 1: Line 1:
-==== Coding Practices ==== 
-  * [[Modernizing the VanillaJuce code base]] -- purging outdated practices in C++ code 
  
 ====== Modernizing the VanillaJuce code base ====== ====== Modernizing the VanillaJuce code base ======
Line 28: Line 26:
  
 It occurred to me that Jules's "quick code review" could form the basis of a nice little article, so instead of simply working through the list and updating the code, I've decided to document the process here, for the benefit of other programmers who, like me, may not be familiar with the latest C++ features and practices. It occurred to me that Jules's "quick code review" could form the basis of a nice little article, so instead of simply working through the list and updating the code, I've decided to document the process here, for the benefit of other programmers who, like me, may not be familiar with the latest C++ features and practices.
 +
 +I'll start by reorganizing Jules's list into categories, and write something about each.
 +
 +===== Outdated C syntax and library functions =====
 +  * [[enum_class_rather_than_typedef_enum|C++11 "enum class" rather than C "typedef enum"]]
 +  * [[eliminate_char_arrays|C++ string classes instead of char[] arrays]]
 +  * [[constexpr instead of preprocessor define]]
 +
 +===== Pointers and references =====
 +  * [[Avoid new/delete, prefer references to pointers, use member variables for sub-Components]]
 +
 +===== Newer C++ features and constructs =====
 +The following two items remain open at this point, pending further guidance from more experienced JUCE developers. I reviewed all my ''for'' loops, and didn't see a case where using C++11 range-based constructs would yield improvement, and I'm not certain yet how inline member-variable initialization actually applies to my code (unless Jules was referring to the kinds of changes I already made to my GUI classes).
 +Comments welcome on the JUCE Forum!
 +  * [[Range-based for loops]]
 +  * [[inline member variable initialization]]
  
  
modernizing_the_vanillajuce_code_base.1504213007.txt.gz ยท Last modified: 2017/08/31 20:56 by shane