• akonradi's avatar
    Validate "required" fields in C++ (#25) · 7c5d256e
    akonradi authored
    * Make C++ error messages more like the Go ones
    
    * Bugfix: field named 'const' has accessor 'const_'
    
    A field named "const" is accessed as "m.const_()", so generate code
    appropriately.
    
    * Predeclare Validate() functions to support nesting
    
    * Use correct message name in C++ output
    
    * Add C++ validation library
    
    * Use fully-qualified C++ message class names
    
    * Implement nested validation in C++
    
    This is ugly, because we don't necessarily generate a validation
    function for every proto message type (ex: the well-known
    google::protobuf::Any type). Use some template metaprogramming to work
    around this, where each validation function is invoked if it exists, and
    a default fallback version is provided as well.
    7c5d256e