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 21:17]
shane [Modernizing the VanillaJuce code base]
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 32: Line 30:
  
 ===== Outdated C syntax and library functions ===== ===== Outdated C syntax and library functions =====
-  * enum class rather than typedef enum +  * [[enum_class_rather_than_typedef_enum|C++11 "enum classrather than C "typedef enum"]] 
-  * sprintf/strcmp etc. +  * [[eliminate_char_arrays|C++ string classes instead of char[] arrays]] 
-  * juce::String or std::string instead of arrays of char +  * [[constexpr instead of preprocessor define]]
-  * constexpr instead of #define+
  
 ===== Pointers and references ===== ===== Pointers and references =====
-  * avoid new/delete +  * [[Avoid new/delete, prefer references to pointers, use member variables for sub-Components]]
-  * pass references where possible +
-  * use member variables for subcomponents rather than pointers+
  
 ===== Newer C++ features and constructs ===== ===== Newer C++ features and constructs =====
-  * Range-based for loops +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). 
-  * inline member variable initialization +Comments welcome on the JUCE Forum! 
-  * take advantage of established cast operators (foo("xyz") not foo(String("xyz")))+  [[Range-based for loops]] 
 +  * [[inline member variable initialization]]
  
  
modernizing_the_vanillajuce_code_base.1504214261.txt.gz · Last modified: 2017/08/31 21:17 by shane