Skip to main content

Fast C++ Code Generation

Project description

cppchips: C++17 code generator

:exclamation: Early development stage :vertical_traffic_light:

a license


:capital_abcd: Languages: EN RU

:four_leaf_clover: Supported C++ constructions

  • class and struct.
  • class constructors.
  • class member fields - with autogeneration getter and setter.
  • initializer list in constructor (withoout initialize base class).
  • class member functions.
  • virtual functions and override in child classes.
  • simple functions, variables.

:rocket: Simple start

cppchips input:

from src.cppchips import *

animalClass = CppClass('Animal')
animalClass.private \
                .add_variable(CppString(), 'var1') \

animalClass.public \
                .add_virtual_method('say', CppVoid(), [], 'std::cout << "---\\n";', noexcept=True) \
                .add_virtual_method('pay', CppInt(), [CppVariable(CppDouble(), 'cost')], '// pay to win!') \
                .add_constructor() \
                .add_getter('var1') \
                .add_setter('var1')

print(animalClass.gen_definition_str())


catClass = CppClass('Cat')
catClass.add_base_class(animalClass).public \
                                    .add_override_method('say') \
                                    .add_constructor() \
                                    .add_override_method('pay')

print(catClass.gen_definition_str())

C++ result:

class Animal {
public:
  Animal() {}
  virtual void say() noexcept { std::cout << "---\n"; }
  virtual int pay(double cost) {
    // pay to win!
  }
  auto &getvar1() noexcept { return mvar1; }
  const auto &getvar1() const noexcept { return mvar1; }
  void setvar1(const std::string &avar1) { mvar1 = avar1; }

private:
  std::string mvar1;
};

class Cat : public Animal {
public:
  Cat() {}
  void say() noexcept override {}
  int pay(double cost) override { return {}; }
};

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cppchips-0.0.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cppchips-0.0.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file cppchips-0.0.1.tar.gz.

File metadata

  • Download URL: cppchips-0.0.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for cppchips-0.0.1.tar.gz
Algorithm Hash digest
SHA256 7912b1364200e8459558069b6315384aaf695221e720e394d3dafa1502c5503a
MD5 0ac8378036233e4ad28cb100b73eee8b
BLAKE2b-256 027c1b6495cf861bb4a555c78689a22eb9f78c2f0ec05f238cd71dc075b06529

See more details on using hashes here.

File details

Details for the file cppchips-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: cppchips-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for cppchips-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 39251c41f93a230511ffcbe96659b69e7917634312e8a8d9582a47e6ec174be9
MD5 8a4a0989d1188382bccc741fcd779baf
BLAKE2b-256 add77d0c745b835b14bc04332cb3495a4f25052cff5bf313e44b93b321e28ef6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page