Giter Site home page Giter Site logo

ripcordsoftware / libscriptobject Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.01 MB

A C++ 11 library implementing scriptable/serializable objects

License: GNU General Public License v2.0

Shell 3.34% Makefile 18.86% C++ 77.10% C 0.66% Python 0.03%
c-plus-plus-11 json scripting serializable-objects

libscriptobject's People

Contributors

craigminihan avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

libscriptobject's Issues

Replace shared_ptr with a lighter impl

std::shared_ptr<> instances require 16 bytes of memory. Switching to boost::intrusive_ptr would reduce this to 8 bytes. Where there are a large number of small objects/arrays the overhead of shared_ptr is high.

Rather than using boost implement as a new counted reference type.

Need a lambda friendly unordered_set like find()

The std::unordered_set does not support a lambda implementation of find(). This means the template type must be created to get a key comparison. In the key cache case the type is a shared_ptr which is a relatively expensive object. It is much preferred to compare the field count and the hash without the expense of creating a smart pointer instance.

Add support for set*()

Support for setString() was added in 6f98352. It would be useful to set the value of other fields in the object. Also consider set for array.

Support single array types

If any array contains a single type then type and offset information may be omitted which is a useful optimization for large arrays.

Return total object allocated size

Object/array to return the sum total of self and children to caller. Both object and array already expose self 'size' but there is no child walk function built in.

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.