Giter Club home page Giter Club logo

beautiful-capi's People

Contributors

alekseyzakharo avatar alexkik avatar amoghmid avatar dkuznetsovgkmsoft avatar nikita-gkmsoft avatar petrppetrov avatar rudenkosergej avatar vkovalev123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

beautiful-capi's Issues

Implement manual handling of objects in the library heap

Something like that:

class Printer
{
public:
    void Show() {
        printer_show(this);
    }

    static void * operator new(size_t size) {
        assert(size == sizeof Printer);
        return printer_create();
    }
    
    static void operator delete(void * obj, size_t size) {
        assert(size == sizeof Printer);
        printer_destroy(obj);
    }
};

The idea was contributed by @vdimas

Move down_cast funtion to the current root namespace

Sometimes it is boring to use a long-named namespace for down_cast function:

ABC::TargetTypePtr obj = ABC::XYZ::down_castABC::TargetTypePtr(object1);

better to just write
ABC::TargetTypePtr obj = ABC::down_castABC::TargetTypePtr(object1);

which could reduced to:
using namespace ABC;
TargetTypePtr obj = down_cast(object1);

Write developer's guide

Write developer's guide and other documentation like FAQ, reference manual, and change log.

Doxygen generation

Generate doxygen-compatible comments in C & C++ code.
Documentation for doxygen should come from API description .xml files.

Type maps for simple types: int, unsigned int, double etc.

Develop methods to map simple types (ints, unsigned ints, shorts, etc.) to well-defined size types, such as int32_t, uint32_t, int16_t etc.
This requires some research: which headers should be used on the client side to have the above types defined.

Add wrap_name attribute to class

Default value is "{class_name}{wrap_suffix}"

where {class_name} is replaced by "Printer"
{wrap_suffix} is replaced by "Ptr" (for example)

Add generation checks for simple inheritance cases

When user specifies simple inheritance mode then it is required that pointer to a derived class should be equal to pointer to a base class (as casted to void*).
We need to generate some runtime (or better compile time) checks for that.

Property documentation

There is no way to write different documentation for set and get methods of a property.

Optimize re-compilation time - split AutoGenWrap.cpp

Now we are forced to always do unity builds: bCapi always generates a huge AutoGenWrap.cpp.
Probably, in some cases it is better to generate many small files (AutoGenWrapXXX.cpp) instead one big: recompilation speed during development will be higher.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.