From: Reid Spencer
In C++ the class and struct keywoards can be used almost + interchangeably. The only difference is when they are used to declare a class: + class makes all members private by default while struct + makes all members public by defaut.
+
Unfortunately, not all compilers follow the rules and some will generate + different symbols based on whether class or struct was used + to declare the symbol. This can lead to problems at link time.
+So, the rule for LLVM is this: "always use the class keyword, + unless all members are public in which case struct is + allowed.
+