Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-2717

C++V2 generator/library

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: C++ - Compiler
    • Labels:
      None

      Description

      instead of adding another set of options to 'old' cpp generator I've started creating new one in:
      https://github.com/hcorg/thrift/tree/cpp_v2
      using old as an reference

      main goals (for generator):

      • code compatible with old librart (at least for first tests, new lib and compiler switches can be added later)
      • no more ugly __isset structure -> boost::optional for optional values
      • as a result - no more __ in names, which violates C++ standard
      • all generation code will have own unit tests (TDD used wherever possible)
      • generated types headers independent from Thrift header, to allow other layers of application using generated types without dependency leaks
      • each type will generate own header/cpp file - easier for user to include only used parts.
      • unordered map/sets
      • returning using move semantics, no more ugly 'return via output parameter' (still possible as option thou - sometimes it's needed for performance)
      • async client using boost::future
      • enum classes
      • initializer lists for constants (maybe)

      main goals (for library):

      • minimizing boost deps
      • using C++11 features to simplify lib
      • be base for new generator

      I'm aiming in C++11 subset available in gcc 4.8 and MSVC 2013

      currently I have only complete enum generation, but work is in progress

      all comments etc are very welcome

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                hcorg Konrad Grochowski
              • Votes:
                1 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated: