forked from PetrPPetrov/beautiful-capi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
54 lines (53 loc) · 2.66 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
*) add "copy" custom function, external helper function or "class member method"
*) add "create" custom function, external helper function for creation of new object instances
*) add clean pre-step: before any generation of include or AutoGenWrap file clean previous any existing files (and command line argumen for removing the existing content)
*) modules support (ability to include another XML API description file from the current API description XML)
*) check for the life cycle semantic coherence with base class
*) single file mode: avoid double inclusion of the same header body
*) single file mode: allow compilation with exceptions, circular references etc.
*) use advances from introducing preprocess classes
*) don't generate dynamic_casts if impl class is not polymorphic
*) rename "noexcept" to "no_except"
*) callbacks support
*) template support
*) standard module for wrapping STL classes (a huge topic, maybe start wrapping only some basic things)
*) standard module for wrapping boost classes (a huge topic, maybe start wrapping only some basic things)
*) flat type maps
*) copy semantic interop
*) validity checking and reporting:
+) circular inheritance
+) invalid base class
+) invalid argument types
*) move constructors if target language supports C++ 11
*) noexcept methods if target language supports C++ 11
*) assigment operator
===
*) implement Dynamic traits for Windows
*) const support for methods
*) const support for objects (constatant instances of wrapper classes)
*) avoid duplicated include files (implementation_header)
*) implement Dynamic traits for Unix
*) implement combined (dynamic & implib) mode
*) shuffle Capi mode
===
*) write more examples and tests:
+) interoperability example (the same source code works both outside of library and inside the library)
+) data_structures
+) weak_ptr
+) dynamic_cast
+) dynamic_load
+) exceptions_basic
+) exceptions_list
*) develop automated testing system
*) test various cases: single_file, namespace_at_folder, implib_dynamic_load, no_namespace_header, all params (the same test, only parameters xml are different)
*) write documentation - manual and FAQ
*) develop generating input for Swig
*) doxygen documentation generation
*) update documentation
*) multiple inheritance?
*) update testing system and tests
*) inline optimization
*) C++ modes: C++ 98, C++2003, C++2011, for wrappers and for internals
*) add Python 2.7 support
*) return values of class type should be normal wrapper if it is possible, or it should be forward_pointer_holder if it is circular reference (?)
*) add automatic inclusion of dependent files (i.e. if ClassA uses ClassB then ClassA.h should include ClassB.h) (?)