From 4dbadfe1e8181ea68dbb7c4b82038f2ac1d42456 Mon Sep 17 00:00:00 2001 From: Pascal Thomet Date: Thu, 14 Dec 2023 22:48:47 +0100 Subject: [PATCH] Work on pimpl_my_class doc --- docs/litgen_book/01_05_05_online.html | 48 +- docs/litgen_book/01_10_00_first_steps.html | 208 +++---- docs/litgen_book/02_00_00_options.html | 32 +- docs/litgen_book/02_05_00_headers.html | 112 ++-- docs/litgen_book/03_05_00_code_layout.html | 32 +- .../04_05_00_names_translation.html | 112 ++-- docs/litgen_book/05_05_00_functions.html | 544 +++++++++--------- docs/litgen_book/06_05_00_classes.html | 428 +++++++------- docs/litgen_book/07_05_00_enums.html | 88 +-- docs/litgen_book/07_05_00_templates.html | 84 +-- docs/litgen_book/08_05_00_namespaces.html | 28 +- docs/litgen_book/09_05_00_preprocessor.html | 64 +-- .../litgen_book/10_05_00_ignore_warnings.html | 32 +- .../litgen_book/11_05_00_post_processing.html | 32 +- docs/litgen_book/20_00_00_cpp_intro.html | 1 + .../20_05_00_cpp_simple_transformations.html | 42 +- docs/litgen_book/20_10_00_pimpl_my_class.html | 140 ++--- docs/litgen_book/20_15_00_pimpl_online.html | 98 ++-- .../_sources/20_10_00_pimpl_my_class.ipynb | 140 ++--- .../_sources/20_15_00_pimpl_online.ipynb | 100 ++-- docs/litgen_book/searchindex.js | 2 +- litgen-book/20_10_00_pimpl_my_class.ipynb | 140 ++--- litgen-book/20_15_00_pimpl_online.ipynb | 100 ++-- .../cpp_tests/my_class_pimpl/my_class.cpp | 10 +- .../cpp_tests/my_class_pimpl/my_class.h | 4 +- .../pimpl_my_class/pimpl_my_class.py | 4 +- 26 files changed, 1301 insertions(+), 1324 deletions(-) diff --git a/docs/litgen_book/01_05_05_online.html b/docs/litgen_book/01_05_05_online.html index 1427e3ed..3729db6c 100644 --- a/docs/litgen_book/01_05_05_online.html +++ b/docs/litgen_book/01_05_05_online.html @@ -558,7 +558,7 @@

Use litgen onlineCorresponding python decls (stub) -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
MyClass::MyClass(const std::string & someVar)
     : mPImpl(std::make_unique<MyClassPImpl>(someVar)) { }
-virtual bool MyClass::SomeMethod() {
+bool MyClass::SomeMethod() {
     return mPImpl->SomeMethod(); }
 bool MyClass::SomeStaticMethod() {
     return MyClassPImpl::SomeStaticMethod(); }
@@ -1061,10 +1061,10 @@ 

A simple exampleA simple example

@@ -1147,14 +1147,14 @@

Running PImplMyCode on a whole codebaseRunning PImplMyCode on a whole codebase/var/folders/w1/w77kvvl9613022ksfxj7v8xh0000gn/T/tmpbqruaajc/my_class.cpp -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
- -
+ +
- +
MyClass::MyClass(const std::string & someVar)
-    : mPImpl(std::make_unique<MyClassPImpl>(someVar)) { }
-virtual bool MyClass::SomeMethod() {
+.highlight .il { color: #8f3f71 } /* Literal.Number.Integer.Long */ 
MyClass::MyClass(const std::string & someParam)
+    : mPImpl(std::make_unique<MyClassPImpl>(someParam)) { }
+bool MyClass::SomeMethod() {
     return mPImpl->SomeMethod(); }
-bool MyClass::SomeStaticMethod() {
-    return MyClassPImpl::SomeStaticMethod(); }
+bool MyClass::SomeStaticFunction() {
+    return MyClassPImpl::SomeStaticFunction(); }
 MyClass::~MyClass() = default;
 
diff --git a/docs/litgen_book/_sources/20_10_00_pimpl_my_class.ipynb b/docs/litgen_book/_sources/20_10_00_pimpl_my_class.ipynb index d9e6223f..18a0da38 100644 --- a/docs/litgen_book/_sources/20_10_00_pimpl_my_class.ipynb +++ b/docs/litgen_book/_sources/20_10_00_pimpl_my_class.ipynb @@ -89,7 +89,7 @@ "\n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", "
MyClass::MyClass(const std::string & someVar)\n",
        "    : mPImpl(std::make_unique<MyClassPImpl>(someVar)) { }\n",
-       "virtual bool MyClass::SomeMethod() {\n",
+       "bool MyClass::SomeMethod() {\n",
        "    return mPImpl->SomeMethod(); }\n",
        "bool MyClass::SomeStaticMethod() {\n",
        "    return MyClassPImpl::SomeStaticMethod(); }\n",
@@ -655,10 +655,10 @@
        "    
\n", " \n", " \n", " \n", " \n", " " @@ -764,14 +764,14 @@ "\n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", "
MyClass::MyClass(const std::string & someVar)\n",
-       "    : mPImpl(std::make_unique<MyClassPImpl>(someVar)) { }\n",
-       "virtual bool MyClass::SomeMethod() {\n",
+       ".highlight .il { color: #8f3f71 } /* Literal.Number.Integer.Long */ 
MyClass::MyClass(const std::string & someParam)\n",
+       "    : mPImpl(std::make_unique<MyClassPImpl>(someParam)) { }\n",
+       "bool MyClass::SomeMethod() {\n",
        "    return mPImpl->SomeMethod(); }\n",
-       "bool MyClass::SomeStaticMethod() {\n",
-       "    return MyClassPImpl::SomeStaticMethod(); }\n",
+       "bool MyClass::SomeStaticFunction() {\n",
+       "    return MyClassPImpl::SomeStaticFunction(); }\n",
        "MyClass::~MyClass() = default;\n",
        "
\n", "\n", "
\n", " \n", " \n", " \n", " \n", " " @@ -430,37 +424,33 @@ "// Some doc about the class, that you want to see in the header file\n", "class MyClassPImpl\n", "{\n", - "public:\n", " //\n", - " // Some doc you also want to see in the header file, since it is in a public block\n", + " // Some doc you also want to see in the header file\n", " //\n", - "\n", + "public:\n", " // Construct an Instance\n", - " MyClassPImpl(const std::string& someVar)\n", + " MyClassPImpl(const std::string& someParam)\n", " {\n", " // Some code you provide in the C++ file, but do not want to see in the header file\n", " }\n", "\n", + " // Destructs the instance\n", + " // (this should not be published in the header, since the PImpl will generate its own unique_ptr destructor)\n", + " ~MyClassPImpl() { /* ... */ }\n", + "\n", " // Some method\n", - " virtual bool SomeMethod() { /* ... */ }\n", + " bool SomeMethod() { /* ... */ return true; }\n", "\n", " // Some public static method\n", - " static bool SomeStaticMethod() { /* ... */ }\n", + " static bool SomeStaticFunction() { /* ... */ return true;}\n", "\n", - " // The destructor should not be published as is, but should use the unique_ptr default destructor\n", - " ~MyClassPImpl() { /* ... */ }\n", "\n", "private:\n", - " //\n", - " // Some private doc, which should not be published\n", - " //\n", - " \n", - " bool SomePrivateMethod() { /* ... */ }\n", + " void SomePrivateMethod() { /* ... */ }\n", "\n", " std::string mSomePrivateMember;\n", " std::future mAnoterPrivateMember;\n", "};\n", - "\n", "\"\"\"\n", "\n", "pimpl_result = pimpl_my_class.pimpl_my_code(cpp_code, pimpl_options, srcmlcpp_options)\n", diff --git a/docs/litgen_book/searchindex.js b/docs/litgen_book/searchindex.js index fcf7c710..0a291875 100644 --- a/docs/litgen_book/searchindex.js +++ b/docs/litgen_book/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["00_00_intro", "01_05_00_install_or_online", "01_05_05_online", "01_05_10_install", "01_10_00_first_steps", "01_15_00_cmake_helpers", "02_00_00_options", "02_05_00_headers", "03_05_00_code_layout", "04_05_00_names_translation", "05_05_00_functions", "06_05_00_classes", "07_05_00_enums", "07_05_00_templates", "08_05_00_namespaces", "09_05_00_preprocessor", "10_05_00_ignore_warnings", "11_05_00_post_processing", "12_05_00_srcml_issues", "20_00_00_cpp_intro", "20_05_00_cpp_simple_transformations", "20_10_00_pimpl_my_class", "20_15_00_pimpl_online", "example_bindings/DaftLib/Readme"], "filenames": ["00_00_intro.md", "01_05_00_install_or_online.md", "01_05_05_online.ipynb", "01_05_10_install.md", "01_10_00_first_steps.ipynb", "01_15_00_cmake_helpers.md", "02_00_00_options.ipynb", "02_05_00_headers.ipynb", "03_05_00_code_layout.ipynb", "04_05_00_names_translation.ipynb", "05_05_00_functions.ipynb", "06_05_00_classes.ipynb", "07_05_00_enums.ipynb", "07_05_00_templates.ipynb", "08_05_00_namespaces.ipynb", "09_05_00_preprocessor.ipynb", "10_05_00_ignore_warnings.ipynb", "11_05_00_post_processing.ipynb", "12_05_00_srcml_issues.md", "20_00_00_cpp_intro.ipynb", "20_05_00_cpp_simple_transformations.ipynb", "20_10_00_pimpl_my_class.ipynb", "20_15_00_pimpl_online.ipynb", "example_bindings/DaftLib/Readme.md"], "titles": ["litgen", "Installation or online usage", "Use litgen online", "Local installation", "First steps", "CMake helpers", "litgen options", "Headers processing", "Generated code layout", "Names and types translation", "Functions", "Classes and structs", "Enums", "Template classes and functions", "Namespaces", "Preprocessor and macros", "Ignore litgen warnings", "Postprocessing and preprocessing", "srcML - C++ parsing advices", "srcmlcpp: C++ code parsing", "Simple C++ code transformations", "PImpl my class: autogenerate PImpl boilerplate", "Online PImpl generation", "Generate binding files for a library"], "terms": {"also": [0, 2, 6, 7, 11, 12, 13, 15, 17, 19, 21, 22], "known": [0, 6], "liter": 0, "gener": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21], "an": [0, 2, 3, 6, 7, 8, 9, 10, 14, 18, 21, 22], "automat": [0, 11, 12, 19, 21], "python": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 17, 19, 23], "human": 0, "who": 0, "like": [0, 6, 7, 9, 10, 12, 19], "nice": 0, "code": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 21, 22, 23], "api": [0, 1, 2, 6, 21], "It": [0, 3, 6, 11, 14, 19, 23], "can": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23], "us": [0, 1, 3, 4, 5, 6, 11, 12, 13, 16, 19, 21, 22, 23], "librari": [0, 2, 4, 5, 7], "discover": 0, "modul": [0, 2, 5, 6, 14, 23], "pybind11": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 23], "refactor": [0, 20], "although": [0, 14], "being": 0, "rel": 0, "new": [0, 2, 6, 11, 22], "2022": 0, "wa": [0, 7, 10, 11, 16, 20, 21], "battl": 0, "test": [0, 5, 6], "20": [0, 3], "differ": [0, 7, 10, 11, 13, 19], "total": [0, 6], "more": [0, 4, 6, 10, 19, 23], "than": 0, "100": 0, "000": 0, "line": [0, 6, 8, 12, 13, 16], "main": [0, 14], "drive": 0, "forc": [0, 6], "behind": 0, "dear": 0, "imgui": [0, 13], "bundl": 0, "put": 0, "strong": 0, "emphasi": 0, "emit": [0, 4, 6, 10, 13, 14], "thu": 0, "provid": [0, 3, 5, 6, 10, 11, 13, 19, 21, 22], "great": 0, "experi": 0, "final": 0, "user": [0, 6], "base": [0, 3, 6, 7, 11, 15], "multi": 0, "languag": 0, "pars": [0, 6, 13, 16], "convert": [0, 2, 4, 6, 10, 12, 14, 16], "sourc": [0, 4, 7, 17, 20, 21], "xml": [0, 6, 18, 19], "develop": [0, 3], "centric": 0, "approach": 0, "preprocessor": [0, 2, 6, 7, 17], "statement": [0, 18], "ar": [0, 2, 3, 4, 6, 7, 8, 9, 10, 12, 14, 16, 18, 21, 23], "kept": 0, "unprocess": 0, "all": [0, 2, 4, 5, 6, 9, 10, 14, 20, 21], "origin": [0, 4, 6, 8, 10, 11, 14, 18, 19, 20, 21], "text": 0, "preserv": [0, 6, 9, 12], "includ": [0, 2, 4, 6, 7, 9, 16, 19, 21, 22, 23], "white": 0, "space": [0, 6, 8], "comment": [0, 2, 4, 6, 7, 8, 12, 14, 19], "special": [0, 13], "charact": 0, "As": [0, 6, 10], "intro": 0, "here": [0, 3, 6, 13, 19, 23], "when": [0, 2, 4, 6, 9, 10, 16, 19], "insid": [0, 6, 7, 9, 10, 14, 17, 19], "integr": [0, 1], "environ": [0, 2, 3, 22], "id": [0, 4, 10, 14], "auto": [0, 2, 4, 9, 10, 11, 12, 13, 15, 16], "complet": [0, 4, 6, 8, 14], "paramet": [0, 2, 4, 6, 10, 16], "type": [0, 2, 4, 6, 11, 13, 14, 15, 16, 20, 23], "accur": 0, "reproduc": 0, "function": [0, 2, 6, 7, 9, 14, 16, 17, 20], "access": [0, 1, 21], "In": [0, 4, 7, 9, 10, 11, 13, 14, 15, 20, 21], "abov": 0, "were": [0, 7], "from": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23], "follow": [0, 10, 13, 16, 20], "signatur": [0, 6, 8, 10], "stack": 0, "current": 0, "window": [0, 5, 6], "imgui_api": 0, "void": [0, 2, 4, 6, 7, 10, 14, 16, 18, 21, 22, 23], "pushitemwidth": 0, "float": [0, 2, 6, 10, 11, 13, 15], "item_width": 0, "push": 0, "width": 0, "item": [0, 6, 10], "common": [0, 7, 21], "larg": 0, "label": [0, 13], "widget": [0, 10], "0": [0, 3, 4, 6, 8, 10, 11, 12, 18], "0f": 0, "pixel": [0, 2], "align": 0, "xx": 0, "right": [0, 2, 22], "so": [0, 2, 4, 6, 11, 12, 13], "flt_min": 0, "alwai": [0, 6, 9, 18], "side": [0, 6, 10], "And": [0, 12, 16, 20], "consist": [0, 21], "two": [0, 2, 4, 8, 10, 11, 21, 23], "part": [0, 6, 7, 23], "stub": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 23], "file": [0, 1, 4, 6, 7, 8, 9, 14, 16, 21, 22], "which": [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 13, 14, 19, 21, 22, 23], "contain": [0, 4, 6, 7, 9, 10, 11, 13, 19, 23], "e": [0, 3, 6, 9, 10, 12, 15, 17, 19, 20], "g": [0, 6, 10, 15], "def": [0, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 23], "push_item_width": 0, "none": [0, 2, 4, 6, 7, 9, 10, 11, 13, 14, 15, 16, 20, 21, 22], "pass": [0, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17], "actual": 0, "m": [0, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 23], "py": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 23], "arg": [0, 2, 4, 7, 8, 9, 11, 13], "found": [0, 6, 8], "onlin": 0, "repositori": [0, 3, 5], "h": [0, 6, 10, 16, 21, 22, 23], "header": [0, 6, 8, 21, 22], "declar": [0, 1, 4, 6, 10, 18], "wai": [0, 3, 9, 10, 13, 20], "pii": 0, "correspond": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "expos": [0, 4, 6, 12, 13, 15, 21], "Being": 0, "14": [0, 18], "your": [0, 1, 4, 6, 22], "cours": 0, "make": [0, 3, 6, 10, 11, 12], "recent": 0, "featur": 0, "17": 0, "23": 0, "you": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23], "want": [0, 1, 2, 4, 6, 10, 11, 13, 16, 20, 21, 22, 23], "must": [0, 6], "its": [0, 2, 3, 4, 7, 10, 13, 14, 16, 20, 21], "associ": 0, "srcmlcpp": [0, 3, 7, 20, 22], "under": [0, 2, 19], "tl": 0, "dr": 0, "free": [0, 10], "individu": 0, "educ": 0, "open": [0, 2, 16, 22], "small": 0, "busi": 0, "paid": 0, "larger": 0, "read": [0, 6, 16], "detail": [0, 4, 6, 11, 14, 16, 21], "sale": 0, "fund": 0, "sustain": 0, "govern": 0, "gnu": 0, "public": [0, 4, 6, 7, 11, 19, 21, 22], "version": [0, 3, 10], "3": [0, 2, 6, 11], "see": [0, 2, 4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23], "copi": [0, 1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22], "txt": 0, "doe": [0, 7, 10, 11, 16, 23], "link": [0, 2, 22], "call": [0, 6, 10, 11, 17, 19, 21], "extern": 0, "If": [0, 1, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 20], "need": [0, 4, 6, 7, 9, 10, 11, 13, 15, 16, 17, 22], "help": 0, "work": [0, 6, 23], "context": 0, "pleas": [0, 23], "issu": [0, 3, 6, 10, 18], "profession": 0, "set": [0, 1, 4, 6, 7, 8, 9, 10, 12, 13, 16], "contact": 0, "author": [0, 6], "email": 0, "possibl": [0, 6, 11, 14, 16, 21], "consult": 0, "notori": 0, "hard": 0, "consequ": 0, "guaranti": 0, "kind": [0, 10], "construct": [0, 6, 18, 21, 22], "contribut": 0, "skill": 0, "contributor": 0, "welcom": 0, "usag": [0, 6], "first": [0, 21], "step": [0, 10], "cmake": [0, 3, 23], "helper": [0, 11, 23], "option": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23], "process": [0, 1, 6, 16], "layout": [0, 6], "name": [0, 2, 4, 5, 6, 10, 13, 14, 16, 20], "translat": [0, 6, 10], "class": [0, 2, 6, 9, 10, 14, 15, 16, 20, 22], "struct": [0, 2, 6, 9, 10, 13, 15, 16, 19, 21], "templat": [0, 5, 6, 9, 16], "enum": [0, 6, 9], "namespac": [0, 2, 6, 9, 10, 20, 23], "macro": [0, 2, 6, 12], "ignor": [0, 2, 6, 8, 13, 14, 23], "warn": [0, 6, 20], "postprocess": 0, "preprocess": [0, 6], "advic": 0, "simpl": [0, 6, 15], "pimpl": 0, "my": 0, "autogener": [0, 11, 23], "boilerpl": 0, "either": [1, 23], "litgen": [1, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 21, 22, 23], "local": 1, "do": [1, 2, 6, 10, 13, 21, 22, 23], "anyth": [1, 6], "simpli": 1, "some": [1, 3, 4, 6, 7, 8, 9, 10, 12, 13, 15, 16, 18, 21, 22], "convers": [1, 2, 6, 10], "past": [1, 22], "bind": [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19], "c": [1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 16, 17, 21, 22], "project": 1, "tool": [1, 2, 22], "liten": 1, "build": [1, 5, 19, 23], "full": [1, 4, 6, 8], "well": [1, 2, 5, 6], "document": [1, 6, 21], "thi": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23], "page": [2, 22], "show": [2, 6, 8, 10, 21], "exampl": [2, 3, 4, 6, 7, 9, 10, 11, 12, 14, 15, 17, 20, 23], "interact": [2, 22], "mybind": [2, 22], "where": [2, 10, 16, 18, 20, 21, 22], "edit": [2, 21, 22, 23], "below": [2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23], "To": [2, 6, 10, 22], "launch": [2, 22], "click": [2, 22], "rocket": [2, 22], "icon": [2, 22], "top": [2, 6, 19, 20, 22], "The": [2, 3, 4, 6, 8, 9, 10, 11, 13, 14, 16, 21, 22, 23], "tab": [2, 22], "wait": [2, 22], "readi": [2, 22], "onc": [2, 16, 21, 22], "run": [2, 4, 6, 8, 20, 22], "cell": [2, 22], "each": [2, 6, 22], "displai": [2, 4, 6, 16], "import": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23], "demo": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22], "litgen_notebook_displai": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22], "litgenopt": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "output": [2, 6, 9, 12, 13, 14, 19, 20, 21], "namespace_root__regex": [2, 6, 14], "mynamespac": [2, 9], "snake": [2, 20], "case": [2, 4, 6, 10, 18, 20, 23], "python_convert_to_snake_cas": [2, 6, 9, 14], "true": [2, 6, 7, 8, 9, 10, 11, 13, 14], "marker": [2, 6, 7, 21], "share": [2, 7], "srcmlcpp_option": [2, 6, 7, 12, 13, 15, 16, 17, 22], "functions_api_prefix": [2, 6, 7], "my_api": [2, 6, 7], "creat": [2, 3, 7, 10, 11, 17, 23], "have": [2, 4, 6, 7, 10, 11, 21], "fn_exclude_non_api": [2, 6, 7], "fals": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "ad": [2, 6, 13, 21], "non": [2, 6, 7, 10], "fn_non_api_com": [2, 6, 7], "box": [2, 4, 6], "immut": [2, 4, 6], "thei": [2, 4, 5, 6, 7, 10, 16], "should": [2, 4, 6, 7, 9, 10, 14, 20, 21, 22], "modifi": [2, 4, 6, 9, 11, 19, 21, 22], "fn_params_replace_modifiable_immutable_by_boxed__regex": [2, 4, 6, 10], "r": [2, 4, 6, 9, 10, 11, 13, 14, 15], "numer": [2, 4, 6, 8, 9], "string": [2, 4, 6, 11, 13, 15, 21, 22, 23], "we": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 20, 21, 23], "export": [2, 6, 7, 9, 14, 16], "macro_define_include_by_name__regex": [2, 6, 15], "my_": 2, "submodul": [2, 6, 9, 10, 14], "sinc": [2, 6, 10, 11, 13, 14, 21, 22], "mark": [2, 21], "root": [2, 6, 14], "multipli": 2, "list": [2, 4, 6, 9, 11, 13], "doubl": [2, 6, 10], "given": [2, 6, 7, 10, 19, 21], "factor": [2, 6], "return": [2, 4, 6, 7, 9, 11, 13, 15, 16, 17, 19, 20, 21, 22], "updat": 2, "std": [2, 4, 6, 9, 10, 11, 13, 21, 22], "vector": [2, 6, 9, 11, 13], "multiplydoubl": 2, "const": [2, 4, 6, 10, 11, 13, 16, 19, 20, 21, 22], "v": [2, 3, 4, 6, 10, 11, 18, 19], "k": 2, "chang": [2, 4, 5, 9, 10, 16, 20], "valu": [2, 4, 6, 7, 9, 11, 12, 13, 16], "bool": [2, 4, 6, 8, 9, 10, 11, 16, 21, 22], "refer": [2, 4, 6, 13, 23], "boxedbool": [2, 4, 10], "switchboolvalu": [2, 4], "standalon": 2, "bloc": 2, "int": [2, 4, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21], "mysubstract": 2, "b": [2, 3, 6, 7, 8, 9, 10, 11, 12, 16, 17], "eol": 2, "doc": [2, 6, 10, 12, 14, 21, 22], "mymath": 2, "introduc": [2, 9, 10, 14], "div": 2, "mul": [2, 7], "divid": 2, "number": [2, 6, 8, 12], "concern": [2, 6, 10, 13], "group": [2, 6, 14], "store": [2, 6, 7, 11, 16, 17, 19], "coordin": 2, "x": [2, 4, 10, 11], "2": [2, 4, 6, 8, 9, 10, 11, 12, 13], "y": [2, 4, 10, 11], "draw": 2, "imag": 2, "i": [2, 3, 6, 9, 10, 11, 17, 19, 20], "privat": [2, 4, 6, 7, 10, 11, 13, 21, 22], "_norm": 2, "match": [2, 6], "regex": [2, 4, 9, 10], "defin": [2, 6, 7, 11, 14, 15, 20, 21], "my_valu": [2, 6, 12], "123": [2, 3], "generate_and_displai": [2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "display_original_cpp_cod": [2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "collapse_pydef": [2, 4, 7, 8, 10, 11, 12, 15, 17], "max_visible_lin": [2, 4, 7, 10, 11, 12, 13, 14], "80": [2, 6, 8, 10, 14], "decl": [2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "x270d": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22], "lt": [2, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22], "generated_from": [2, 4, 10, 16], "boxedtyp": [2, 4, 10], "gt": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22], "__init__": [2, 4, 6, 9, 10, 11, 13, 15, 16], "self": [2, 4, 6, 9, 10, 11, 13, 15, 16], "__repr__": [2, 4, 10], "str": [2, 4, 6, 7, 10, 11, 13, 17, 20], "multiply_doubl": 2, "quot": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21], "switch_bool_valu": [2, 4], "my_substract": 2, "default": [2, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16, 21, 22], "constructor": [2, 4, 6, 9, 13, 15, 16], "param": [2, 4, 6, 9, 13, 16], "my_math": 2, "proxi": [2, 9, 10, 14], "method": [2, 4, 6, 9, 10, 14, 19, 21, 22], "static": [2, 9, 10, 14, 21, 22], "staticmethod": [2, 10, 14], "pyclassboxedbool": [2, 4, 10], "class_": [2, 4, 6, 9, 10, 11, 13, 15], "def_readwrit": [2, 4, 6, 9, 10, 11, 13], "amp": [2, 4, 6, 9, 10, 11, 13, 15, 16, 20, 21, 22], "init": [2, 4, 9, 10, 11, 13, 15], "switchboolvalue_adapt_modifiable_immut": [2, 4], "v_boxed_valu": [2, 4], "n": [2, 4, 6, 10, 11, 12], "pyclasspixel": 2, "make_uniqu": [2, 4, 9, 11, 13, 21, 22], "attr": [2, 15], "module_": [2, 9, 10, 14], "pynsmymath": 2, "def_submodul": [2, 9, 10, 14], "glue": [2, 10, 11, 21, 22, 23], "to_str": [2, 4, 10], "download": 3, "pre": 3, "compil": [3, 21], "org": [3, 6], "For": [3, 4, 6, 7, 10, 11, 14, 17, 19, 23], "ubuntu": 3, "04": 3, "wget": 3, "http": [3, 6], "131": 3, "42": [3, 11, 17], "38": 3, "lmcr": 3, "v1": [3, 16], "srcml_1": 3, "1_ubuntu20": 3, "deb": 3, "sudo": 3, "dpkg": 3, "altern": [3, 6], "how": [3, 6, 8, 11, 13, 23], "debian": 3, "machin": 3, "requir": [3, 6, 11, 21], "packag": [3, 6, 9, 19], "apt": 3, "get": 3, "libarch": 3, "dev": 3, "antlr": 3, "libxml2": 3, "libxslt": 3, "libcurl4": 3, "openssl": 3, "clone": 3, "fork": 3, "fix": [3, 6], "git": 3, "github": [3, 6], "com": [3, 6], "pthom": [3, 6], "develop_fix_build": 3, "mkdir": 3, "p": 3, "cd": 3, "j": 3, "maco": [3, 5], "brew": 3, "antlr2": 3, "boost": 3, "note": [3, 9, 10, 13, 14, 20], "instruct": [3, 11], "bit": [3, 6, 11, 19], "date": 3, "why": 3, "branch": 3, "recommend": [3, 6], "virtual": [3, 6, 21, 22], "venv": 3, "bin": 3, "activ": [3, 6], "pip": [3, 5], "straightforward": 4, "simplest": 4, "instanti": [4, 6], "cpp_code": [4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22], "mathemat": 4, "oper": [4, 6, 16], "add": [4, 6, 7, 8, 9, 10, 11, 13, 17, 20, 21], "integ": 4, "sub": 4, "substract": 4, "generated_cod": [4, 10, 13, 16, 23], "generate_cod": [4, 7, 10, 13, 17], "sever": [4, 6, 10, 12], "element": [4, 6, 7, 8, 16, 20], "stub_cod": [4, 7, 10, 16, 17], "enabl": [4, 6, 9, 11, 21, 22], "flawless": 4, "navig": 4, "pydef_cod": [4, 10], "specif": [4, 6, 7], "glue_cod": [4, 21, 22], "addit": [4, 14, 21], "spefic": 4, "advanc": [4, 6, 13], "later": 4, "manual": [4, 11, 12, 13, 23], "most": 4, "time": [4, 21], "empti": [4, 6, 8, 9, 23], "let": [4, 7, 9, 10, 16, 20, 21], "s": [4, 6, 7, 9, 10, 12, 16, 20, 21], "pyi": [4, 6, 8, 23], "describ": [4, 6], "offer": [4, 10], "show_python_cod": [4, 6, 10, 16], "show_cpp_cod": [4, 10, 16, 20, 21, 22], "member": [4, 6, 12, 13, 15, 16, 21], "fooclass": [4, 11], "mpriv": 4, "mpublic": 4, "1": [4, 6, 8, 9, 10, 11, 12, 13, 15, 16], "showinfo": 4, "foostruc": 4, "m_public": 4, "show_info": 4, "pyclassfooclass": [4, 11], "pyclassfoostruc": 4, "There": [4, 6, 8, 9, 10], "explain": 4, "whose": [4, 6, 10, 20], "one": [4, 10, 19, 21], "specifi": [4, 6], "adapt": [4, 6, 10], "40": [4, 7, 10, 11], "syntax": 4, "highlitht": 4, "f": [4, 6, 10, 12, 16], "dummi": [4, 6], "ensur": [5, 10, 21], "platform": [5, 6], "challeng": 5, "lg_skbuild_templ": 5, "start": [5, 10, 20], "point": [5, 6, 10, 11], "A": [5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 19], "custom": [5, 6, 11], "pypi": 5, "system": 5, "conda": 5, "wheel": 5, "linux": 5, "mani": [6, 8, 16, 19], "support": [6, 7, 10, 11, 12, 13, 16], "separ": [6, 19, 21], "them": [6, 8, 10, 11, 14, 16, 19, 21, 23], "order": [6, 9, 10, 11, 14, 16, 19, 21], "exact": [6, 18, 19], "yourfunctionnam": 6, "end": [6, 11, 21, 23], "_privat": 6, "tip": 6, "everyth": 6, "advis": 6, "prefix": [6, 10, 12, 13, 15], "raw": 6, "content": [6, 14, 16, 21, 23], "codemanip": [6, 17, 19, 20, 23], "code_util": [6, 17, 19, 20], "litgen_options_cod": 6, "download_url_cont": 6, "githubusercont": 6, "titl": 6, "__future__": 6, "annot": [6, 10], "ani": [6, 10, 14, 19], "callabl": 6, "code_replac": 6, "regexreplacementlist": [6, 9], "srcmlcppoption": [6, 19, 20, 22], "intern": [6, 9], "template_opt": 6, "templatefunctionsopt": 6, "templateclassopt": 6, "class_iterable_info": 6, "classiterablesinfo": 6, "configur": 6, "exclud": [6, 13, 14], "indent": [6, 8], "etc": [6, 8, 10, 19], "interest": 6, "notabl": 6, "fill": [6, 11, 16], "es": 6, "denot": [6, 7], "dll": 6, "locat": [6, 8], "original_location_flag_show": [6, 8], "parent": [6, 8, 11], "folder": [6, 8, 21, 23], "shall": [6, 8], "shown": [6, 8, 13, 14], "path": [6, 8], "original_location_nb_parent_fold": [6, 8], "original_signature_flag_show": [6, 8], "size": [6, 8, 10, 11, 15], "python_indent_s": [6, 8], "4": [6, 8, 9, 11, 12, 16], "python_ident_with_tab": [6, 8], "insert": [6, 8, 21], "keep": [6, 8, 14, 21], "python_reproduce_cpp_layout": [6, 8], "try": [6, 7, 8, 13], "adher": [6, 8], "max": [6, 8], "length": [6, 8], "neg": [6, 8], "python_max_line_length": [6, 8], "strip": [6, 8], "remov": [6, 8, 10, 12, 13, 21], "python_strip_empty_comment_lin": [6, 8], "black": [6, 8], "formatt": [6, 8], "python_run_black_formatt": [6, 8, 14], "python_black_formatter_line_length": [6, 8], "88": [6, 8], "pydef": [6, 8, 10], "cpp_indent_s": [6, 8], "cpp_indent_with_tab": [6, 8], "variabl": [6, 7, 9, 15], "snake_cas": [6, 9, 14, 20], "replac": [6, 7, 10, 13, 17, 20], "go": [6, 9, 11], "type_replac": [6, 9, 13], "prefil": [6, 9], "standard_type_replac": [6, 9], "appli": [6, 9, 10, 15, 17, 19, 20], "value_replac": [6, 9], "standard_value_replac": [6, 9], "comments_replac": [6, 9], "standard_comments_replac": [6, 9], "other": [6, 9, 11, 14], "var_names_replac": [6, 9], "function_names_replac": [6, 9], "cpp_to_python": [6, 9], "namespace_names_replac": [6, 9], "standard_comment_replac": [6, 9], "macro_name_replac": [6, 9, 15], "certain": [6, 10, 15], "fn_exclude_by_name__regex": [6, 10, 11], "those": [6, 10, 16], "decor": [6, 10], "fn_exclude_by_param_type__regex": [6, 10], "char": [6, 10], "unsign": [6, 10], "callback": [6, 10], "would": [6, 7, 10, 11, 18], "xxxcallback": [6, 10], "distinct": [6, 10], "fn_params_exclude_types__regex": [6, 10], "itself": [6, 10], "publish": [6, 7, 10, 11, 13, 21, 22], "interfac": [6, 10], "onli": [6, 10, 11, 16, 21], "ha": [6, 7, 10, 11, 14], "fn_params_exclude_names__regex": [6, 10], "desir": 6, "readthedoc": 6, "io": 6, "en": 6, "stabl": 6, "html": 6, "fn_template_opt": [6, 13, 16], "dict": [6, 11], "templatedfunctionnameregexstr": 6, "aka": 6, "cpptypenam": 6, "add_speci": [6, 13], "whatev": 6, "add_ignor": 6, "fn_template_decorate_in_stub": 6, "visual": 6, "togeth": 6, "accept": 6, "arrai": [6, 15], "numpi": [6, 11, 15], "input": [6, 10], "pycpp": 6, "pybind": [6, 10], "blob": 6, "master": 6, "test_numpy_vector": 6, "cpp": [6, 16, 21, 23], "fn_vectorize__regex": [6, 10], "fn_namespace_vectorize__regex": [6, 10], "transform": [6, 7, 10, 11, 17], "mathfunct": [6, 10], "fn_vectorize_prefix": 6, "fn_vectorize_suffix": [6, 10], "usabl": 6, "overload": 6, "same": [6, 14, 18, 19], "polici": 6, "return_value_polici": 6, "write": [6, 21], "after": [6, 17, 21], "integration_test": 6, "mylib": 6, "return_value_policy_test": 6, "fn_return_force_policy_reference_for_pointers__regex": [6, 10], "fn_return_force_policy_reference_for_references__regex": [6, 10], "fn_force_overload__regex": [6, 10], "lambda": 6, "confus": 6, "give": [6, 13], "error": 6, "object": [6, 10, 19, 21], "39": [6, 10, 12, 16], "overload_cast_impl": 6, "fn_force_lambda__regex": [6, 10], "style": [6, 16], "buffer": 6, "inlin": 6, "add_inside_arrai": 6, "uint8_t": [6, 10], "size_t": [6, 10, 11], "array_s": 6, "number_to_add": 6, "mai": [6, 7, 10, 11, 16, 19], "bound": 6, "ndarrai": [6, 10, 11, 15], "typenam": [6, 10, 13, 16, 20], "t": [6, 10, 13, 16, 21], "mul_inside_arrai": 6, "down": 6, "cast": [6, 10], "target": 6, "fn_params_buffer_replace_by_array_regex": 6, "disabl": [6, 9], "fn_params_replace_buffer_by_array__regex": [6, 10], "fn_params_buffer_typ": 6, "consid": [6, 10, 13], "own": [6, 22], "cannot": [6, 16], "synonym": [6, 13], "typedef": 6, "between": [6, 10, 21], "nativ": [6, 10], "reli": 6, "By": [6, 9, 10, 21], "join_string_by_pipe_char": 6, "int8_t": [6, 10], "uint16_t": [6, 10], "int16_t": [6, 10], "uint32_t": [6, 10, 13], "int32_t": [6, 10, 13], "np_uint_l": [6, 10], "depend": [6, 21], "uint64_t": [6, 10], "nix": 6, "np_int_l": [6, 10], "int64_t": [6, 10], "long": [6, 10], "fn_params_buffer_template_typ": [6, 10], "numerictyp": 6, "fn_params_buffer_size_names__regex": [6, 10], "nb": [6, 10], "count": [6, 10, 12], "make_regex_var_name_contains_word": 6, "foo_const": 6, "fn_params_replace_c_array_const_by_std_array__regex": 6, "foo_non_const": 6, "boxedint": [6, 10], "output_0": 6, "output_1": 6, "fn_params_replace_c_array_modifiable_by_boxed__regex": 6, "c_array_modifiable_max_s": 6, "maximum": 6, "fn_params_replace_modifiable_c_array__max_s": 6, "10": 6, "foo": [6, 7, 10, 11, 12, 13, 15, 16, 18, 19], "items_count": 6, "fn_params_replace_c_string_list_regex": 6, "fn_params_replace_c_string_list__regex": [6, 10], "pointer": [6, 21], "modif": [6, 19], "done": 6, "seen": 6, "fn_params_adapt_modifiable_immutable_regex": 6, "now": [6, 16], "tupl": [6, 9, 10], "fn_params_output_modifiable_immutable_to_return__regex": [6, 10], "veri": [6, 7, 10, 17], "fn_custom_adapt": 6, "adapted_funct": 6, "adaptedfunct": 6, "lambdaadapt": 6, "class_exclude_by_name__regex": [6, 11], "member_exclude_by_name__regex": [6, 11], "member_exclude_by_type__regex": 6, "class_create_default_named_ctor__regex": [6, 11], "struct_create_default_named_ctor__regex": [6, 11], "class_expose_protected_methods__regex": [6, 11], "protect": 6, "techniqu": [6, 21], "abl": [6, 11], "overrid": 6, "class_override_virtual_methods_in_python__regex": [6, 11], "class_dynamic_attributes__regex": [6, 11], "dynam": 6, "attribut": 6, "writabl": 6, "ones": 6, "explicitli": 6, "def_properti": [6, 11, 15], "class_deep_copy__regex": [6, 11], "class_copy__regex": [6, 11], "deep": 6, "howev": [6, 7, 9, 10, 14, 16, 18], "implicit": [6, 11, 13, 15], "invok": 6, "deepcopi": [6, 11], "class_copy_add_info_in_stub": [6, 11], "exist": 6, "__copy__": [6, 11], "__deepcopy__": [6, 11], "mention": 6, "iter": 6, "begin": [6, 10, 11], "made": 6, "class_iterables_info": [6, 11], "add_iterable_class": [6, 11], "python_class_name__regex": 6, "iterable_python_type_nam": 6, "class_template_opt": [6, 13], "scheme": 6, "myclass": [6, 9, 21, 22], "myclassint": 6, "class_name_regex": 6, "myprefix": 6, "select": 6, "cpp_types_list": 6, "naming_schem": 6, "templatenamingschem": 6, "camel_case_suffix": 6, "class_template_decorate_in_stub": 6, "properti": 6, "written": 6, "member_numeric_c_array_replace__regex": [6, 11], "member_numeric_c_array_typ": 6, "via": [6, 10, 15], "allow": 6, "don": 6, "byte": 6, "chararrai": 6, "inner": [6, 14], "place": [6, 21], "namespace_exclude__regex": [6, 14], "ii": [6, 14], "nternal": [6, 14], "dd": [6, 14], "etail": [6, 14], "enum_exclude_by_name__regex": 6, "typic": 6, "enumname_": 6, "myenum": 6, "myenum_a": 6, "myenum_b": 6, "enum_flag_remove_values_prefix": 6, "skip": 6, "myenum_count": 6, "enum_flag_skip_count": [6, 12], "rudimentari": 6, "arithmet": [6, 11], "level": [6, 7, 10], "enum_make_arithmetic__regex": [6, 12], "global": [6, 15], "my_float": 6, "5": [6, 12, 13, 15], "my_str": 6, "abc": [6, 15], "my_hex_valu": 6, "0x00010009": [6, 15], "limit": [6, 15], "hex": 6, "noth": 6, "post": 6, "postprocess_stub_funct": [6, 17], "postprocess_pydef_funct": [6, 17], "saniti": 6, "check": 6, "util": 6, "check_options_consist": 6, "certainti": 6, "candid": [6, 10], "uint_8t": 6, "standard": [6, 9, 10, 12], "cope": 6, "variou": 6, "implement": [6, 13, 16, 21], "authorized_typ": 6, "buffer_typ": 6, "_fn_params_buffer_types_list": 6, "rais": 6, "valueerror": 6, "build_typ": 6, "unauthor": 6, "join": 6, "_indent_cpp_spac": 6, "els": [6, 7, 10, 20, 22], "_indent_python_spac": 6, "split_string_by_pipe_char": 6, "_fn_params_buffer_template_types_list": 6, "_member_numeric_c_array_types_list": 6, "site": 6, "scroll": 6, "up": [6, 11], "header_filter_preprocessor_region": 6, "avail": 6, "scrml_warning_set": 6, "warningtyp": 6, "suffix": [6, 10], "could": 6, "__declspec": 6, "dllexport": 6, "dllimport": 6, "other_api": 6, "resolv": 6, "constexpr": 6, "space_dimens": 6, "named_number_macro": [6, 12, 15], "region": 6, "ifdef": [6, 7, 10], "some_rare_opt": 6, "endif": [6, 7, 10], "filter_preprocessor_region": 6, "header_filter_acceptable__regex": [6, 7], "header_guard": 6, "_h": [6, 7], "hpp": [6, 7], "hxx": [6, 7], "__cplusplu": [6, 7], "_h_": [6, 7], "befor": [6, 7, 17], "code_preprocess_funct": [6, 7, 17], "misc": 6, "encod": 6, "utf": 6, "8": 6, "cppemptylin": [6, 20], "preserve_empty_lin": 6, "flag_srcml_dump_posit": 6, "posit": [6, 13, 16], "tree": [6, 18], "cppelement": 6, "str_code": [6, 19, 20], "indent_cpp_str": 6, "verbos": 6, "quiet": 6, "mode": 6, "messag": 6, "discard": 6, "stderr": 6, "flag_quiet": 6, "ignored_warn": 6, "identifi": 6, "ignored_warning_part": [6, 13, 16], "callstack": 6, "flag_show_python_callstack": 6, "progress": 6, "dure": 6, "execut": [6, 19], "stdout": 6, "flag_show_progress": 6, "workaround": 6, "srcml": [6, 19], "1833": 6, "fix_brace_init_default_valu": 6, "functions_api_prefixes_list": 6, "assert": 6, "isinst": [6, 20], "_int_from_str_or_named_number_macro": 6, "int_str": 6, "except": 6, "zone": 7, "low": 7, "ifndef": 7, "occurr": [7, 14], "look": [7, 10, 11, 19], "my_header_h": 7, "inclus": 7, "guard": 7, "out": 7, "arcane_opt": 7, "enter": 7, "handl": [7, 10, 11, 12, 13, 16], "arcan": 7, "foo2": [7, 10, 11], "foo3": [7, 10], "common_opt": 7, "foo4": 7, "correct": [7, 10, 13], "adjust": [7, 22], "whether": [7, 10], "probabl": 7, "param_0": [7, 11, 17], "decid": [7, 10], "nprivat": 7, "preprocess_change_int": [7, 17], "int32": [7, 13, 17], "dumb": [7, 17], "print": [7, 17, 19, 20, 22], "demonstr": [8, 23], "relev": [9, 10, 11, 12, 13, 23], "extract": [9, 10, 23], "take": [9, 10, 21], "mypair": 9, "behav": 9, "pair": [9, 10], "present": [9, 21], "getminmax": 9, "correctli": [9, 11, 12, 13, 16, 18], "interpret": [9, 19], "get_min_max": 9, "account": 9, "add_last_replac": [9, 13], "captur": 9, "alreadi": [9, 14], "addnumb": [9, 20], "multiplierratio": 9, "camelcas": 9, "my_namespac": 9, "add_numb": [9, 20], "multiplier_ratio": 9, "pynsmynamespac": 9, "pynsmynamespace_classmyclass": 9, "relat": [10, 18], "wth": 10, "fn_": 10, "fn_param": 10, "deal": 10, "priv_": 10, "priv_setopt": 10, "setopt": 10, "publicopt": 10, "privateopt": 10, "priv_set_opt": 10, "set_opt": 10, "private_opt": 10, "But": 10, "close": [10, 19], "setoptions_adapt_exclude_param": 10, "fundament": 10, "manag": 10, "memori": [10, 21], "lifetim": 10, "lead": [10, 21], "trivial": 10, "just": [10, 22], "inform": [10, 13, 19], "clear": 10, "charg": 10, "eventu": 10, "resourc": 10, "reason": 10, "suppos": [10, 20, 21], "respons": 10, "destruct": 10, "makewidget": 10, "makefoo": 10, "destructor": [10, 21, 22], "make_widget": 10, "make_foo": 10, "take_ownership": 10, "inoutflag": 10, "switchbool": 10, "switch_bool": 10, "in_out_v": 10, "situat": 10, "encapsul": [10, 21], "in_out_flag": 10, "switchbool_adapt_modifiable_immut": 10, "inoutflag_boxed_valu": 10, "sai": 10, "indic": [10, 23], "userinputstr": 10, "inoutstr": 10, "ask": [10, 13], "necessari": [10, 15], "user_input_str": 10, "in_out_str": 10, "userinputstring_adapt_modifiable_immutable_to_return": 10, "inoutstr_adapt_modifi": 10, "make_tupl": 10, "sometyp": 10, "foo_adapt_fixed_size_c_arrai": 10, "data": [10, 13], "understand": 10, "v_0": 10, "v_1": 10, "pyclassboxedint": 10, "v_raw": 10, "item_count": 10, "printitem": 10, "print_item": 10, "printitems_adapt_c_string_list": 10, "items_ptr": 10, "push_back": 10, "c_str": 10, "static_cast": 10, "log": [10, 20], "loglevel": 10, "log_adapt_variadic_format": 10, "plotxi": 10, "xvalu": 10, "yvalu": 10, "how_mani": 10, "plot_xi": 10, "x_valu": 10, "np": [10, 11, 15], "y_valu": 10, "tell": [10, 13, 15], "plot": 10, "60": [10, 11, 13], "plotxy_adapt_c_buff": 10, "xvalues_from_pyarrai": 10, "ssize_t": 10, "xvalues_count": 10, "shape": 10, "xvalues_typ": 10, "dtype": [10, 11, 15], "char_": 10, "throw": 10, "runtime_error": 10, "msg": 10, "bad": 10, "expect": [10, 18], "equival": 10, "yvalues_from_pyarrai": 10, "yvalues_count": 10, "yvalues_typ": 10, "numbertyp": 10, "color": 10, "effici": 10, "transmit": 10, "_win32": 10, "l": 10, "d": [10, 12], "q": 10, "reach": 10, "portion": [10, 11, 12, 13], "within": 10, "fn1": 10, "fn2": 10, "_v": 10, "math_funct": 10, "fn1_v": 10, "fn2_v": 10, "pynsmathfunct": 10, "detect": 10, "accordingli": 10, "someth": 10, "overload_cast": [10, 11, 13], "might": [10, 13, 16], "rare": 10, "suffici": 10, "discrimin": 10, "disambigu": 10, "foo3_adapt_force_lambda": 10, "sometim": [11, 15], "foodetail": [11, 14], "mdetail": 11, "pyclassfoo": [11, 13, 15], "foostruct": 11, "foostruct2": 11, "enum_": [11, 12], "pyclassfoostruct": 11, "pyclassfoostruct2": 11, "creation": [11, 14], "publicist": 11, "autom": [11, 21], "protected_method": 11, "pyclassa": 11, "a_publicist": 11, "trampolin": 11, "cumbersom": 11, "anim": 11, "n_time": 11, "pure": 11, "pyclassanim": 11, "animal_trampolin": 11, "pybind11_override_pure_nam": 11, "unknown": 11, "dog": 11, "result": 11, "bark": 11, "woof": 11, "30": [11, 12], "pyclassdog": 11, "dog_trampolin": 11, "pybind11_override_nam": 11, "dunder": 11, "intwrapp": 11, "unari": 11, "minu": 11, "__add__": 11, "__sub__": 11, "__neg__": 11, "__lt__": 11, "__iadd__": 11, "__call__": 11, "pyclassintwrapp": 11, "__le__": 11, "__eq__": 11, "__ge__": 11, "__gt__": 11, "pyclasspoint": 11, "cmp": 11, "pet": 11, "pick": 11, "pyclasspet": 11, "dynamic_attr": 11, "foo1": 11, "pyclassfoo2": 11, "memo": 11, "mycontain": 11, "idx": 11, "__len__": 11, "__getitem__": 11, "__iter__": 11, "pyclassmycontain": 11, "make_iter": 11, "keep_al": 11, "format_descriptor": [11, 15], "format": [11, 15], "sizeof": [11, 15], "nest": 11, "host": 11, "choic": 11, "handlechoic": 11, "handle_choic": 11, "foo_a": 12, "about": [12, 13, 21, 22, 23], "comput": 12, "On": 12, "foo_b": 12, "foo_c": 12, "foo_d": 12, "foo_": 12, "foo_count": 12, "suppress": [12, 15], "256": [12, 15], "uncom": [12, 14], "definit": 12, "customiz": 13, "rang": 13, "complain": 13, "unhandl": 13, "maxvalu": 13, "litgentemplatefunctionignor": [13, 16], "while": [13, 14, 16], "function_decl": [13, 16], "add_suffix_to_function_nam": 13, "max_valu": 13, "instead": 13, "voi": 13, "logvalu": 13, "log_value_int": 13, "log_value_float": 13, "sophist": 13, "imguiconfig": 13, "config": 13, "z": 13, "za": 13, "z0": 13, "9": 13, "imvector": 13, "imvector_int32": 13, "imvector_int": 13, "With": 13, "imvector_config": 13, "intvalu": 13, "miss": 13, "undefin": 13, "becaus": 13, "16": [13, 16], "imvector_float_ptr": 13, "imvector_int32_t": 13, "pyclassimguiconfig": 13, "pyclassimvector_imguiconfig": 13, "pyclassimvector_float_ptr": 13, "pyclassimvector_int32_t": 13, "append": [13, 16], "thank": 14, "occur": 14, "twice": 14, "fake": 14, "realli": 14, "avoid": 14, "maintain": 14, "perfect": 14, "anonym": 14, "fooroot": 14, "localfunct": 14, "becom": 14, "fooinner": 14, "second": 14, "merg": 14, "fooinner2": 14, "foo_root": 14, "foo_inn": 14, "foo_inner2": 14, "pynsinn": 14, "mylib_valu": 15, "mylib_float": 15, "mylib_str": 15, "mylib_hex_valu": 15, "renam": 15, "mylib_": 15, "add_first_replac": 15, "z_": 15, "hex_valu": 15, "know": [15, 16], "my_count": 15, "encount": [16, 20], "10_05_10_sample_cod": 16, "load": 16, "trigger": 16, "myoper": 16, "v2": 16, "calloper": 16, "functionptr": 16, "generate_code_for_fil": 16, "srcmlcppignoreel": 16, "cppunprocess": 16, "21": 16, "19": 16, "litgenblockelementexcept": 16, "7": 16, "studi": 16, "harlmess": 16, "next": 16, "anymor": 16, "what": [16, 18, 19], "answertotheultimatequestionoflife_theuniverse_andeveryth": 17, "postprocess_stub": 17, "unindent_cod": 17, "copyright": 17, "2023": 17, "pascal": 17, "thomet": 17, "ye": 17, "claim": 17, "magnific": 17, "At": 17, "least": 17, "tri": 17, "postprocess_pydef": 17, "answer_to_the_ultimate_question_of_life_the_universe_and_everyth": 17, "never": 18, "fail": [18, 22], "regener": 18, "corner": 18, "gotcha": 18, "wherea": 18, "three": 19, "perform": 19, "textual": 19, "manipul": 19, "produc": 19, "resembl": 19, "ast": 19, "descend": 19, "reflect": 19, "answer": 19, "nullptr": 19, "cpp_unit": [19, 20], "code_to_cpp_unit": [19, 20], "repres": 19, "debugg": 19, "cppunit": [19, 20], "cppstruct": 19, "visibl": [19, 21], "default_access_typ": 19, "obtain": 19, "str_code_verbatim": [19, 20], "srcml_xml": 19, "guarante": 19, "token": 19, "diagram": 19, "adaptedel": 19, "mymodule_class": 20, "visitor_log_info": 20, "cpp_element": 20, "event": 20, "cppelementsvisitorev": 20, "depth": 20, "onel": 20, "short_cpp_element_info": 20, "visit_cpp_breadth_first": 20, "cppfunctiondecl": 20, "cpptype": 20, "cppparameterlist": 20, "cppparamet": 20, "cppdecl": 20, "mass": 20, "mymodule_": 20, "mymodul": 20, "our": 20, "achiev": 20, "my_refactor_visitor": 20, "to_snake_cas": 20, "change_function_to_snake_cas": 20, "cpp_function": 20, "function_nam": 20, "cpp_element_com": 20, "comment_on_previous_lin": 20, "make_my_module_namespac": 20, "cpp_type": 20, "change_typenam": 20, "startswith": 20, "visitor": 20, "elif": 20, "still": 20, "retain": 20, "program": 21, "represent": 21, "through": 21, "opaqu": 21, "Its": 21, "advantag": 21, "real": 21, "oppos": 21, "hide": 21, "remain": 21, "clearli": 21, "abi": 21, "stabil": 21, "improv": 21, "implemen": 21, "drawback": 21, "indirect": 21, "lot": 21, "often": 21, "tediou": 21, "srcmlcpp_tool": [21, 22], "pimpl_my_class": [21, 22], "boiler": 21, "somewher": 21, "myclasspimpl": [21, 22], "demo_cpp_no_mark": 21, "my_class": [21, 22], "futur": [21, 22], "block": [21, 22], "instanc": [21, 22], "somevar": [21, 22], "somemethod": [21, 22], "somestaticmethod": [21, 22], "unique_ptr": [21, 22], "someprivatemethod": [21, 22], "msomeprivatememb": [21, 22], "manoterprivatememb": [21, 22], "pimpl_my_cod": [21, 22], "pimpl_result": [21, 22], "header_cod": [21, 22], "bottom": 21, "mpimpl": [21, 22], "pimpl_my_fil": 21, "These": 21, "pimpl_glue_cod": 21, "pimpl_header_cod": 21, "short": 21, "cpp_file": 21, "header_fil": [21, 23], "create_pimpl_example_fil": 21, "show_cpp_fil": 21, "var": 21, "w1": 21, "w77kvvl9613022ksfxj7v8xh0000gn": 21, "tmpbqruaajc": 21, "mystructpimpl": 21, "pragma": 21, "pimplopt": [21, 22], "pimpl_opt": [21, 22], "pimpl_suffix": [21, 22], "mystruct": 21, "daftlib": 23, "popul": 23, "explan": 23, "section": 23, "info": 23, "cpp_sourc": 23, "sampl": 23, "daftlib2": 23, "autogenerate_daft_lib": 23, "script": 23, "purpos": 23, "daftlib_amalgam": 23, "daftlib_bind": 23, "pybind_daftlib": 23, "glue_code_daftlib": 23, "daftlib_stub": 23, "daft_lib": 23, "py_init_module_daft_lib": 23, "litgen_pydef": 23, "litgen_glue_cod": 23, "litgen_stub": 23, "write_generated_code_for_fil": 23, "input_cpp_header_fil": 23, "input_cpp_head": 23, "output_cpp_pydef_fil": 23, "output_stub_pyi_fil": 23, "output_cpp_glue_code_fil": 23, "amalgamated_head": 23, "make_amalgamated_head": 23, "amalgamationopt": 23, "base_dir": 23, "this_dir": 23, "local_includes_startwith": 23, "include_subdir": 23, "main_header_fil": 23, "dst_amalgamated_header_fil": 23, "write_amalgamate_header_fil": 23, "daftlib_2": 23}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"litgen": [0, 2, 3, 6, 16, 19], "what": 0, "srcml": [0, 3, 18], "document": 0, "bind": [0, 4, 23], "exampl": [0, 13, 16, 21], "compat": 0, "licens": 0, "support": 0, "tabl": 0, "content": [0, 7], "instal": [0, 1, 3], "basic": 0, "advanc": 0, "topic": 0, "c": [0, 10, 11, 12, 18, 19, 20], "transform": [0, 19, 20], "tool": 0, "onlin": [1, 2, 22], "usag": [1, 4, 10], "us": [2, 10, 18], "local": 3, "step": [3, 4], "1": 3, "precompil": 3, "binari": 3, "build": 3, "from": [3, 19], "sourc": [3, 19], "2": 3, "without": 3, "check": 3, "out": 3, "code": [3, 4, 8, 16, 19, 20], "first": 4, "gener": [4, 8, 22, 23], "function": [4, 10, 11, 13, 18], "simpl": [4, 10, 20, 21], "class": [4, 11, 12, 13, 21], "struct": [4, 11], "option": [4, 6], "about": [4, 6], "glue": 4, "insid": 4, "notebook": 4, "cmake": 5, "helper": 5, "note": 6, "regex": 6, "main": 6, "srcmlcpp": [6, 19], "header": [7, 17, 23], "process": [7, 17], "filter": 7, "api": 7, "prefix": 7, "preprocess": [7, 17], "layout": 8, "name": [9, 11], "type": [9, 10, 19], "translat": 9, "replac": 9, "convert": 9, "snake": 9, "case": 9, "exclud": [10, 11], "param": [10, 11], "return": 10, "polici": 10, "return_value_polici": 10, "refer": 10, "custom": 10, "valu": [10, 15, 18], "modifi": 10, "immut": 10, "box": 10, "ad": 10, "output": 10, "style": 10, "arrai": [10, 11], "string": 10, "list": 10, "variad": 10, "format": 10, "pass": 10, "numer": [10, 11, 15], "buffer": 10, "numpi": 10, "templat": [10, 13], "vector": 10, "accept": 10, "arg": 10, "kwarg": 10, "forc": 10, "overload": [10, 11, 13], "automat": 10, "manual": 10, "lambda": 10, "member": 11, "default": [11, 18], "constructor": 11, "expos": 11, "protect": 11, "overrid": 11, "virtual": 11, "method": 11, "python": [11, 15], "combin": 11, "inherit": 11, "oper": 11, "addit": 11, "substract": 11, "etc": 11, "comparison": 11, "spaceship": 11, "dynam": 11, "attribut": 11, "copi": 11, "deep": 11, "iter": 11, "inner": 11, "enum": [11, 12], "classic": 12, "arithmet": 12, "export": [13, 15], "an": [13, 23], "decor": 13, "suffix": 13, "introduct": 13, "instanti": 13, "suppress": [13, 16], "warn": [13, 16], "namespac": 14, "preprocessor": 15, "macro": 15, "modul": 15, "set": 15, "ignor": 16, "potenti": 16, "emit": 16, "postprocess": 17, "post": 17, "stub": 17, "pydef": 17, "file": [17, 23], "pars": [18, 19], "advic": 18, "don": 18, "t": 18, "s": 18, "paramet": 18, "cppelement": [19, 20], "tree": [19, 20], "verbatim": 19, "visit": 20, "pimpl": [21, 22], "my": 21, "autogener": 21, "boilerpl": 21, "A": 21, "run": 21, "pimplmycod": 21, "whole": 21, "codebas": 21, "librari": 23, "overview": 23, "marker": 23, "one": 23, "amalgam": 23, "collect": 23}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["00_00_intro", "01_05_00_install_or_online", "01_05_05_online", "01_05_10_install", "01_10_00_first_steps", "01_15_00_cmake_helpers", "02_00_00_options", "02_05_00_headers", "03_05_00_code_layout", "04_05_00_names_translation", "05_05_00_functions", "06_05_00_classes", "07_05_00_enums", "07_05_00_templates", "08_05_00_namespaces", "09_05_00_preprocessor", "10_05_00_ignore_warnings", "11_05_00_post_processing", "12_05_00_srcml_issues", "20_00_00_cpp_intro", "20_05_00_cpp_simple_transformations", "20_10_00_pimpl_my_class", "20_15_00_pimpl_online", "example_bindings/DaftLib/Readme"], "filenames": ["00_00_intro.md", "01_05_00_install_or_online.md", "01_05_05_online.ipynb", "01_05_10_install.md", "01_10_00_first_steps.ipynb", "01_15_00_cmake_helpers.md", "02_00_00_options.ipynb", "02_05_00_headers.ipynb", "03_05_00_code_layout.ipynb", "04_05_00_names_translation.ipynb", "05_05_00_functions.ipynb", "06_05_00_classes.ipynb", "07_05_00_enums.ipynb", "07_05_00_templates.ipynb", "08_05_00_namespaces.ipynb", "09_05_00_preprocessor.ipynb", "10_05_00_ignore_warnings.ipynb", "11_05_00_post_processing.ipynb", "12_05_00_srcml_issues.md", "20_00_00_cpp_intro.ipynb", "20_05_00_cpp_simple_transformations.ipynb", "20_10_00_pimpl_my_class.ipynb", "20_15_00_pimpl_online.ipynb", "example_bindings/DaftLib/Readme.md"], "titles": ["litgen", "Installation or online usage", "Use litgen online", "Local installation", "First steps", "CMake helpers", "litgen options", "Headers processing", "Generated code layout", "Names and types translation", "Functions", "Classes and structs", "Enums", "Template classes and functions", "Namespaces", "Preprocessor and macros", "Ignore litgen warnings", "Postprocessing and preprocessing", "srcML - C++ parsing advices", "srcmlcpp: C++ code parsing", "Simple C++ code transformations", "PImpl my class: autogenerate PImpl boilerplate", "Online PImpl generation", "Generate binding files for a library"], "terms": {"also": [0, 2, 6, 7, 11, 12, 13, 15, 17, 19, 21, 22], "known": [0, 6], "liter": 0, "gener": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21], "an": [0, 2, 3, 6, 7, 8, 9, 10, 14, 18, 21, 22], "automat": [0, 11, 12, 19, 21], "python": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 17, 19, 23], "human": 0, "who": 0, "like": [0, 6, 7, 9, 10, 12, 19], "nice": 0, "code": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 21, 22, 23], "api": [0, 1, 2, 6, 21], "It": [0, 3, 6, 11, 14, 19, 23], "can": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23], "us": [0, 1, 3, 4, 5, 6, 11, 12, 13, 16, 19, 21, 22, 23], "librari": [0, 2, 4, 5, 7], "discover": 0, "modul": [0, 2, 5, 6, 14, 23], "pybind11": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 23], "refactor": [0, 20], "although": [0, 14], "being": 0, "rel": 0, "new": [0, 2, 6, 11, 22], "2022": 0, "wa": [0, 7, 10, 11, 16, 20, 21], "battl": 0, "test": [0, 5, 6], "20": [0, 3], "differ": [0, 7, 10, 11, 13, 19], "total": [0, 6], "more": [0, 4, 6, 10, 19, 23], "than": 0, "100": 0, "000": 0, "line": [0, 6, 8, 12, 13, 16], "main": [0, 14], "drive": 0, "forc": [0, 6], "behind": 0, "dear": 0, "imgui": [0, 13], "bundl": 0, "put": 0, "strong": 0, "emphasi": 0, "emit": [0, 4, 6, 10, 13, 14], "thu": 0, "provid": [0, 3, 5, 6, 10, 11, 13, 19, 21, 22], "great": 0, "experi": 0, "final": 0, "user": [0, 6], "base": [0, 3, 6, 7, 11, 15], "multi": 0, "languag": 0, "pars": [0, 6, 13, 16], "convert": [0, 2, 4, 6, 10, 12, 14, 16], "sourc": [0, 4, 7, 17, 20, 21], "xml": [0, 6, 18, 19], "develop": [0, 3], "centric": 0, "approach": 0, "preprocessor": [0, 2, 6, 7, 17], "statement": [0, 18], "ar": [0, 2, 3, 4, 6, 7, 8, 9, 10, 12, 14, 16, 18, 21, 23], "kept": 0, "unprocess": 0, "all": [0, 2, 4, 5, 6, 9, 10, 14, 20, 21], "origin": [0, 4, 6, 8, 10, 11, 14, 18, 19, 20, 21], "text": 0, "preserv": [0, 6, 9, 12], "includ": [0, 2, 4, 6, 7, 9, 16, 19, 21, 22, 23], "white": 0, "space": [0, 6, 8], "comment": [0, 2, 4, 6, 7, 8, 12, 14, 19], "special": [0, 13], "charact": 0, "As": [0, 6, 10], "intro": 0, "here": [0, 3, 6, 13, 19, 23], "when": [0, 2, 4, 6, 9, 10, 16, 19], "insid": [0, 6, 7, 9, 10, 14, 17, 19], "integr": [0, 1], "environ": [0, 2, 3, 22], "id": [0, 4, 10, 14], "auto": [0, 2, 4, 9, 10, 11, 12, 13, 15, 16], "complet": [0, 4, 6, 8, 14], "paramet": [0, 2, 4, 6, 10, 16], "type": [0, 2, 4, 6, 11, 13, 14, 15, 16, 20, 23], "accur": 0, "reproduc": 0, "function": [0, 2, 6, 7, 9, 14, 16, 17, 20], "access": [0, 1, 21], "In": [0, 4, 7, 9, 10, 11, 13, 14, 15, 20, 21], "abov": 0, "were": [0, 7], "from": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23], "follow": [0, 10, 13, 16, 20], "signatur": [0, 6, 8, 10], "stack": 0, "current": 0, "window": [0, 5, 6], "imgui_api": 0, "void": [0, 2, 4, 6, 7, 10, 14, 16, 18, 21, 22, 23], "pushitemwidth": 0, "float": [0, 2, 6, 10, 11, 13, 15], "item_width": 0, "push": 0, "width": 0, "item": [0, 6, 10], "common": [0, 7, 21], "larg": 0, "label": [0, 13], "widget": [0, 10], "0": [0, 3, 4, 6, 8, 10, 11, 12, 18], "0f": 0, "pixel": [0, 2], "align": 0, "xx": 0, "right": [0, 2, 22], "so": [0, 2, 4, 6, 11, 12, 13], "flt_min": 0, "alwai": [0, 6, 9, 18], "side": [0, 6, 10], "And": [0, 12, 16, 20], "consist": [0, 21], "two": [0, 2, 4, 8, 10, 11, 21, 23], "part": [0, 6, 7, 23], "stub": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 23], "file": [0, 1, 4, 6, 7, 8, 9, 14, 16, 21, 22], "which": [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 13, 14, 19, 21, 23], "contain": [0, 4, 6, 7, 9, 10, 11, 13, 19, 23], "e": [0, 3, 6, 9, 10, 12, 15, 17, 19, 20], "g": [0, 6, 10, 15], "def": [0, 2, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 23], "push_item_width": 0, "none": [0, 2, 4, 6, 7, 9, 10, 11, 13, 14, 15, 16, 20, 21, 22], "pass": [0, 2, 4, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17], "actual": 0, "m": [0, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 23], "py": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 23], "arg": [0, 2, 4, 7, 8, 9, 11, 13], "found": [0, 6, 8], "onlin": 0, "repositori": [0, 3, 5], "h": [0, 6, 10, 16, 21, 22, 23], "header": [0, 6, 8, 21, 22], "declar": [0, 1, 4, 6, 10, 18], "wai": [0, 3, 9, 10, 13, 20], "pii": 0, "correspond": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "expos": [0, 4, 6, 12, 13, 15, 21], "Being": 0, "14": [0, 18], "your": [0, 1, 4, 6, 22], "cours": 0, "make": [0, 3, 6, 10, 11, 12], "recent": 0, "featur": 0, "17": 0, "23": 0, "you": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23], "want": [0, 1, 2, 4, 6, 10, 11, 13, 16, 20, 21, 22, 23], "must": [0, 6], "its": [0, 2, 3, 4, 7, 10, 13, 14, 16, 20, 21, 22], "associ": 0, "srcmlcpp": [0, 3, 7, 20, 22], "under": [0, 2, 19], "tl": 0, "dr": 0, "free": [0, 10], "individu": 0, "educ": 0, "open": [0, 2, 16, 22], "small": 0, "busi": 0, "paid": 0, "larger": 0, "read": [0, 6, 16], "detail": [0, 4, 6, 11, 14, 16, 21], "sale": 0, "fund": 0, "sustain": 0, "govern": 0, "gnu": 0, "public": [0, 4, 6, 7, 11, 19, 21, 22], "version": [0, 3, 10], "3": [0, 2, 6, 11], "see": [0, 2, 4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23], "copi": [0, 1, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 22], "txt": 0, "doe": [0, 7, 10, 11, 16, 23], "link": [0, 2, 22], "call": [0, 6, 10, 11, 17, 19, 21], "extern": 0, "If": [0, 1, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 20], "need": [0, 4, 6, 7, 9, 10, 11, 13, 15, 16, 17, 22], "help": 0, "work": [0, 6, 23], "context": 0, "pleas": [0, 23], "issu": [0, 3, 6, 10, 18], "profession": 0, "set": [0, 1, 4, 6, 7, 8, 9, 10, 12, 13, 16], "contact": 0, "author": [0, 6], "email": 0, "possibl": [0, 6, 11, 14, 16, 21], "consult": 0, "notori": 0, "hard": 0, "consequ": 0, "guaranti": 0, "kind": [0, 10], "construct": [0, 6, 18, 21, 22], "contribut": 0, "skill": 0, "contributor": 0, "welcom": 0, "usag": [0, 6], "first": [0, 21], "step": [0, 10], "cmake": [0, 3, 23], "helper": [0, 11, 23], "option": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23], "process": [0, 1, 6, 16], "layout": [0, 6], "name": [0, 2, 4, 5, 6, 10, 13, 14, 16, 20], "translat": [0, 6, 10], "class": [0, 2, 6, 9, 10, 14, 15, 16, 20, 22], "struct": [0, 2, 6, 9, 10, 13, 15, 16, 19, 21], "templat": [0, 5, 6, 9, 16], "enum": [0, 6, 9], "namespac": [0, 2, 6, 9, 10, 20, 23], "macro": [0, 2, 6, 12], "ignor": [0, 2, 6, 8, 13, 14, 23], "warn": [0, 6, 20], "postprocess": 0, "preprocess": [0, 6], "advic": 0, "simpl": [0, 6, 15], "pimpl": 0, "my": 0, "autogener": [0, 11, 23], "boilerpl": 0, "either": [1, 23], "litgen": [1, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 20, 21, 22, 23], "local": 1, "do": [1, 2, 6, 10, 13, 21, 22, 23], "anyth": [1, 6], "simpli": 1, "some": [1, 3, 4, 6, 7, 8, 9, 10, 12, 13, 15, 16, 18, 21, 22], "convers": [1, 2, 6, 10], "past": [1, 22], "bind": [1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19], "c": [1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 16, 17, 21, 22], "project": 1, "tool": [1, 2, 22], "liten": 1, "build": [1, 5, 19, 23], "full": [1, 4, 6, 8], "well": [1, 2, 5, 6], "document": [1, 6, 21], "thi": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23], "page": [2, 22], "show": [2, 6, 8, 10, 21], "exampl": [2, 3, 4, 6, 7, 9, 10, 11, 12, 14, 15, 17, 20, 23], "interact": [2, 22], "mybind": [2, 22], "where": [2, 10, 16, 18, 20, 21, 22], "edit": [2, 21, 22, 23], "below": [2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23], "To": [2, 6, 10, 22], "launch": [2, 22], "click": [2, 22], "rocket": [2, 22], "icon": [2, 22], "top": [2, 6, 19, 20, 22], "The": [2, 3, 4, 6, 8, 9, 10, 11, 13, 14, 16, 21, 22, 23], "tab": [2, 22], "wait": [2, 22], "readi": [2, 22], "onc": [2, 16, 21, 22], "run": [2, 4, 6, 8, 20, 22], "cell": [2, 22], "each": [2, 6, 22], "displai": [2, 4, 6, 16], "import": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23], "demo": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22], "litgen_notebook_displai": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22], "litgenopt": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "output": [2, 6, 9, 12, 13, 14, 19, 20, 21], "namespace_root__regex": [2, 6, 14], "mynamespac": [2, 9], "snake": [2, 20], "case": [2, 4, 6, 10, 18, 20, 23], "python_convert_to_snake_cas": [2, 6, 9, 14], "true": [2, 6, 7, 8, 9, 10, 11, 13, 14, 22], "marker": [2, 6, 7, 21], "share": [2, 7], "srcmlcpp_option": [2, 6, 7, 12, 13, 15, 16, 17, 22], "functions_api_prefix": [2, 6, 7], "my_api": [2, 6, 7], "creat": [2, 3, 7, 10, 11, 17, 23], "have": [2, 4, 6, 7, 10, 11, 21], "fn_exclude_non_api": [2, 6, 7], "fals": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "ad": [2, 6, 13, 21], "non": [2, 6, 7, 10], "fn_non_api_com": [2, 6, 7], "box": [2, 4, 6], "immut": [2, 4, 6], "thei": [2, 4, 5, 6, 7, 10, 16], "should": [2, 4, 6, 7, 9, 10, 14, 20, 21, 22], "modifi": [2, 4, 6, 9, 11, 19, 21, 22], "fn_params_replace_modifiable_immutable_by_boxed__regex": [2, 4, 6, 10], "r": [2, 4, 6, 9, 10, 11, 13, 14, 15], "numer": [2, 4, 6, 8, 9], "string": [2, 4, 6, 11, 13, 15, 21, 22, 23], "we": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 20, 21, 23], "export": [2, 6, 7, 9, 14, 16], "macro_define_include_by_name__regex": [2, 6, 15], "my_": 2, "submodul": [2, 6, 9, 10, 14], "sinc": [2, 6, 10, 11, 13, 14, 21, 22], "mark": [2, 21], "root": [2, 6, 14], "multipli": 2, "list": [2, 4, 6, 9, 11, 13], "doubl": [2, 6, 10], "given": [2, 6, 7, 10, 19, 21], "factor": [2, 6], "return": [2, 4, 6, 7, 9, 11, 13, 15, 16, 17, 19, 20, 21, 22], "updat": 2, "std": [2, 4, 6, 9, 10, 11, 13, 21, 22], "vector": [2, 6, 9, 11, 13], "multiplydoubl": 2, "const": [2, 4, 6, 10, 11, 13, 16, 19, 20, 21, 22], "v": [2, 3, 4, 6, 10, 11, 18, 19], "k": 2, "chang": [2, 4, 5, 9, 10, 16, 20], "valu": [2, 4, 6, 7, 9, 11, 12, 13, 16], "bool": [2, 4, 6, 8, 9, 10, 11, 16, 21, 22], "refer": [2, 4, 6, 13, 23], "boxedbool": [2, 4, 10], "switchboolvalu": [2, 4], "standalon": 2, "bloc": 2, "int": [2, 4, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21], "mysubstract": 2, "b": [2, 3, 6, 7, 8, 9, 10, 11, 12, 16, 17], "eol": 2, "doc": [2, 6, 10, 12, 14, 21, 22], "mymath": 2, "introduc": [2, 9, 10, 14], "div": 2, "mul": [2, 7], "divid": 2, "number": [2, 6, 8, 12], "concern": [2, 6, 10, 13], "group": [2, 6, 14], "store": [2, 6, 7, 11, 16, 17, 19], "coordin": 2, "x": [2, 4, 10, 11], "2": [2, 4, 6, 8, 9, 10, 11, 12, 13], "y": [2, 4, 10, 11], "draw": 2, "imag": 2, "i": [2, 3, 6, 9, 10, 11, 17, 19, 20], "privat": [2, 4, 6, 7, 10, 11, 13, 21, 22], "_norm": 2, "match": [2, 6], "regex": [2, 4, 9, 10], "defin": [2, 6, 7, 11, 14, 15, 20, 21], "my_valu": [2, 6, 12], "123": [2, 3], "generate_and_displai": [2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "display_original_cpp_cod": [2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "collapse_pydef": [2, 4, 7, 8, 10, 11, 12, 15, 17], "max_visible_lin": [2, 4, 7, 10, 11, 12, 13, 14], "80": [2, 6, 8, 10, 14], "decl": [2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17], "x270d": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22], "lt": [2, 4, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22], "generated_from": [2, 4, 10, 16], "boxedtyp": [2, 4, 10], "gt": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22], "__init__": [2, 4, 6, 9, 10, 11, 13, 15, 16], "self": [2, 4, 6, 9, 10, 11, 13, 15, 16], "__repr__": [2, 4, 10], "str": [2, 4, 6, 7, 10, 11, 13, 17, 20], "multiply_doubl": 2, "quot": [2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21], "switch_bool_valu": [2, 4], "my_substract": 2, "default": [2, 4, 6, 7, 9, 10, 12, 13, 14, 15, 16, 21, 22], "constructor": [2, 4, 6, 9, 13, 15, 16], "param": [2, 4, 6, 9, 13, 16], "my_math": 2, "proxi": [2, 9, 10, 14], "method": [2, 4, 6, 9, 10, 14, 19, 21, 22], "static": [2, 9, 10, 14, 21, 22], "staticmethod": [2, 10, 14], "pyclassboxedbool": [2, 4, 10], "class_": [2, 4, 6, 9, 10, 11, 13, 15], "def_readwrit": [2, 4, 6, 9, 10, 11, 13], "amp": [2, 4, 6, 9, 10, 11, 13, 15, 16, 20, 21, 22], "init": [2, 4, 9, 10, 11, 13, 15], "switchboolvalue_adapt_modifiable_immut": [2, 4], "v_boxed_valu": [2, 4], "n": [2, 4, 6, 10, 11, 12], "pyclasspixel": 2, "make_uniqu": [2, 4, 9, 11, 13, 21, 22], "attr": [2, 15], "module_": [2, 9, 10, 14], "pynsmymath": 2, "def_submodul": [2, 9, 10, 14], "glue": [2, 10, 11, 21, 22, 23], "to_str": [2, 4, 10], "download": 3, "pre": 3, "compil": [3, 21], "org": [3, 6], "For": [3, 4, 6, 7, 10, 11, 14, 17, 19, 23], "ubuntu": 3, "04": 3, "wget": 3, "http": [3, 6], "131": 3, "42": [3, 11, 17], "38": 3, "lmcr": 3, "v1": [3, 16], "srcml_1": 3, "1_ubuntu20": 3, "deb": 3, "sudo": 3, "dpkg": 3, "altern": [3, 6], "how": [3, 6, 8, 11, 13, 23], "debian": 3, "machin": 3, "requir": [3, 6, 11, 21], "packag": [3, 6, 9, 19], "apt": 3, "get": 3, "libarch": 3, "dev": 3, "antlr": 3, "libxml2": 3, "libxslt": 3, "libcurl4": 3, "openssl": 3, "clone": 3, "fork": 3, "fix": [3, 6], "git": 3, "github": [3, 6], "com": [3, 6], "pthom": [3, 6], "develop_fix_build": 3, "mkdir": 3, "p": 3, "cd": 3, "j": 3, "maco": [3, 5], "brew": 3, "antlr2": 3, "boost": 3, "note": [3, 9, 10, 13, 14, 20], "instruct": [3, 11], "bit": [3, 6, 11, 19], "date": 3, "why": 3, "branch": 3, "recommend": [3, 6], "virtual": [3, 6], "venv": 3, "bin": 3, "activ": [3, 6], "pip": [3, 5], "straightforward": 4, "simplest": 4, "instanti": [4, 6], "cpp_code": [4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 21, 22], "mathemat": 4, "oper": [4, 6, 16], "add": [4, 6, 7, 8, 9, 10, 11, 13, 17, 20, 21], "integ": 4, "sub": 4, "substract": 4, "generated_cod": [4, 10, 13, 16, 23], "generate_cod": [4, 7, 10, 13, 17], "sever": [4, 6, 10, 12], "element": [4, 6, 7, 8, 16, 20], "stub_cod": [4, 7, 10, 16, 17], "enabl": [4, 6, 9, 11, 21, 22], "flawless": 4, "navig": 4, "pydef_cod": [4, 10], "specif": [4, 6, 7], "glue_cod": [4, 21, 22], "addit": [4, 14, 21], "spefic": 4, "advanc": [4, 6, 13], "later": 4, "manual": [4, 11, 12, 13, 23], "most": 4, "time": [4, 21], "empti": [4, 6, 8, 9, 23], "let": [4, 7, 9, 10, 16, 20, 21], "s": [4, 6, 7, 9, 10, 12, 16, 20, 21], "pyi": [4, 6, 8, 23], "describ": [4, 6], "offer": [4, 10], "show_python_cod": [4, 6, 10, 16], "show_cpp_cod": [4, 10, 16, 20, 21, 22], "member": [4, 6, 12, 13, 15, 16, 21], "fooclass": [4, 11], "mpriv": 4, "mpublic": 4, "1": [4, 6, 8, 9, 10, 11, 12, 13, 15, 16], "showinfo": 4, "foostruc": 4, "m_public": 4, "show_info": 4, "pyclassfooclass": [4, 11], "pyclassfoostruc": 4, "There": [4, 6, 8, 9, 10], "explain": 4, "whose": [4, 6, 10, 20], "one": [4, 10, 19, 21], "specifi": [4, 6], "adapt": [4, 6, 10], "40": [4, 7, 10, 11], "syntax": 4, "highlitht": 4, "f": [4, 6, 10, 12, 16], "dummi": [4, 6], "ensur": [5, 10, 21], "platform": [5, 6], "challeng": 5, "lg_skbuild_templ": 5, "start": [5, 10, 20], "point": [5, 6, 10, 11], "A": [5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 19], "custom": [5, 6, 11], "pypi": 5, "system": 5, "conda": 5, "wheel": 5, "linux": 5, "mani": [6, 8, 16, 19], "support": [6, 7, 10, 11, 12, 13, 16], "separ": [6, 19, 21], "them": [6, 8, 10, 11, 14, 16, 19, 21, 23], "order": [6, 9, 10, 11, 14, 16, 19, 21], "exact": [6, 18, 19], "yourfunctionnam": 6, "end": [6, 11, 21, 23], "_privat": 6, "tip": 6, "everyth": 6, "advis": 6, "prefix": [6, 10, 12, 13, 15], "raw": 6, "content": [6, 14, 16, 21, 23], "codemanip": [6, 17, 19, 20, 23], "code_util": [6, 17, 19, 20], "litgen_options_cod": 6, "download_url_cont": 6, "githubusercont": 6, "titl": 6, "__future__": 6, "annot": [6, 10], "ani": [6, 10, 14, 19], "callabl": 6, "code_replac": 6, "regexreplacementlist": [6, 9], "srcmlcppoption": [6, 19, 20, 22], "intern": [6, 9], "template_opt": 6, "templatefunctionsopt": 6, "templateclassopt": 6, "class_iterable_info": 6, "classiterablesinfo": 6, "configur": 6, "exclud": [6, 13, 14], "indent": [6, 8], "etc": [6, 8, 10, 19], "interest": 6, "notabl": 6, "fill": [6, 11, 16], "es": 6, "denot": [6, 7], "dll": 6, "locat": [6, 8], "original_location_flag_show": [6, 8], "parent": [6, 8, 11], "folder": [6, 8, 21, 23], "shall": [6, 8], "shown": [6, 8, 13, 14], "path": [6, 8], "original_location_nb_parent_fold": [6, 8], "original_signature_flag_show": [6, 8], "size": [6, 8, 10, 11, 15], "python_indent_s": [6, 8], "4": [6, 8, 9, 11, 12, 16], "python_ident_with_tab": [6, 8], "insert": [6, 8, 21], "keep": [6, 8, 14, 21], "python_reproduce_cpp_layout": [6, 8], "try": [6, 7, 8, 13], "adher": [6, 8], "max": [6, 8], "length": [6, 8], "neg": [6, 8], "python_max_line_length": [6, 8], "strip": [6, 8], "remov": [6, 8, 10, 12, 13, 21], "python_strip_empty_comment_lin": [6, 8], "black": [6, 8], "formatt": [6, 8], "python_run_black_formatt": [6, 8, 14], "python_black_formatter_line_length": [6, 8], "88": [6, 8], "pydef": [6, 8, 10], "cpp_indent_s": [6, 8], "cpp_indent_with_tab": [6, 8], "variabl": [6, 7, 9, 15], "snake_cas": [6, 9, 14, 20], "replac": [6, 7, 10, 13, 17, 20], "go": [6, 9, 11], "type_replac": [6, 9, 13], "prefil": [6, 9], "standard_type_replac": [6, 9], "appli": [6, 9, 10, 15, 17, 19, 20], "value_replac": [6, 9], "standard_value_replac": [6, 9], "comments_replac": [6, 9], "standard_comments_replac": [6, 9], "other": [6, 9, 11, 14], "var_names_replac": [6, 9], "function_names_replac": [6, 9], "cpp_to_python": [6, 9], "namespace_names_replac": [6, 9], "standard_comment_replac": [6, 9], "macro_name_replac": [6, 9, 15], "certain": [6, 10, 15], "fn_exclude_by_name__regex": [6, 10, 11], "those": [6, 10, 16], "decor": [6, 10], "fn_exclude_by_param_type__regex": [6, 10], "char": [6, 10], "unsign": [6, 10], "callback": [6, 10], "would": [6, 7, 10, 11, 18], "xxxcallback": [6, 10], "distinct": [6, 10], "fn_params_exclude_types__regex": [6, 10], "itself": [6, 10], "publish": [6, 7, 10, 11, 13, 21, 22], "interfac": [6, 10], "onli": [6, 10, 11, 16, 21], "ha": [6, 7, 10, 11, 14], "fn_params_exclude_names__regex": [6, 10], "desir": 6, "readthedoc": 6, "io": 6, "en": 6, "stabl": 6, "html": 6, "fn_template_opt": [6, 13, 16], "dict": [6, 11], "templatedfunctionnameregexstr": 6, "aka": 6, "cpptypenam": 6, "add_speci": [6, 13], "whatev": 6, "add_ignor": 6, "fn_template_decorate_in_stub": 6, "visual": 6, "togeth": 6, "accept": 6, "arrai": [6, 15], "numpi": [6, 11, 15], "input": [6, 10], "pycpp": 6, "pybind": [6, 10], "blob": 6, "master": 6, "test_numpy_vector": 6, "cpp": [6, 16, 21, 23], "fn_vectorize__regex": [6, 10], "fn_namespace_vectorize__regex": [6, 10], "transform": [6, 7, 10, 11, 17], "mathfunct": [6, 10], "fn_vectorize_prefix": 6, "fn_vectorize_suffix": [6, 10], "usabl": 6, "overload": 6, "same": [6, 14, 18, 19], "polici": 6, "return_value_polici": 6, "write": [6, 21], "after": [6, 17, 21], "integration_test": 6, "mylib": 6, "return_value_policy_test": 6, "fn_return_force_policy_reference_for_pointers__regex": [6, 10], "fn_return_force_policy_reference_for_references__regex": [6, 10], "fn_force_overload__regex": [6, 10], "lambda": 6, "confus": 6, "give": [6, 13], "error": 6, "object": [6, 10, 19, 21], "39": [6, 10, 12, 16], "overload_cast_impl": 6, "fn_force_lambda__regex": [6, 10], "style": [6, 16], "buffer": 6, "inlin": 6, "add_inside_arrai": 6, "uint8_t": [6, 10], "size_t": [6, 10, 11], "array_s": 6, "number_to_add": 6, "mai": [6, 7, 10, 11, 16, 19], "bound": 6, "ndarrai": [6, 10, 11, 15], "typenam": [6, 10, 13, 16, 20], "t": [6, 10, 13, 16, 21], "mul_inside_arrai": 6, "down": 6, "cast": [6, 10], "target": 6, "fn_params_buffer_replace_by_array_regex": 6, "disabl": [6, 9], "fn_params_replace_buffer_by_array__regex": [6, 10], "fn_params_buffer_typ": 6, "consid": [6, 10, 13], "own": [6, 22], "cannot": [6, 16], "synonym": [6, 13], "typedef": 6, "between": [6, 10, 21], "nativ": [6, 10], "reli": 6, "By": [6, 9, 10, 21], "join_string_by_pipe_char": 6, "int8_t": [6, 10], "uint16_t": [6, 10], "int16_t": [6, 10], "uint32_t": [6, 10, 13], "int32_t": [6, 10, 13], "np_uint_l": [6, 10], "depend": [6, 21], "uint64_t": [6, 10], "nix": 6, "np_int_l": [6, 10], "int64_t": [6, 10], "long": [6, 10], "fn_params_buffer_template_typ": [6, 10], "numerictyp": 6, "fn_params_buffer_size_names__regex": [6, 10], "nb": [6, 10], "count": [6, 10, 12], "make_regex_var_name_contains_word": 6, "foo_const": 6, "fn_params_replace_c_array_const_by_std_array__regex": 6, "foo_non_const": 6, "boxedint": [6, 10], "output_0": 6, "output_1": 6, "fn_params_replace_c_array_modifiable_by_boxed__regex": 6, "c_array_modifiable_max_s": 6, "maximum": 6, "fn_params_replace_modifiable_c_array__max_s": 6, "10": 6, "foo": [6, 7, 10, 11, 12, 13, 15, 16, 18, 19], "items_count": 6, "fn_params_replace_c_string_list_regex": 6, "fn_params_replace_c_string_list__regex": [6, 10], "pointer": [6, 21], "modif": [6, 19], "done": 6, "seen": 6, "fn_params_adapt_modifiable_immutable_regex": 6, "now": [6, 16], "tupl": [6, 9, 10], "fn_params_output_modifiable_immutable_to_return__regex": [6, 10], "veri": [6, 7, 10, 17], "fn_custom_adapt": 6, "adapted_funct": 6, "adaptedfunct": 6, "lambdaadapt": 6, "class_exclude_by_name__regex": [6, 11], "member_exclude_by_name__regex": [6, 11], "member_exclude_by_type__regex": 6, "class_create_default_named_ctor__regex": [6, 11], "struct_create_default_named_ctor__regex": [6, 11], "class_expose_protected_methods__regex": [6, 11], "protect": 6, "techniqu": [6, 21], "abl": [6, 11], "overrid": 6, "class_override_virtual_methods_in_python__regex": [6, 11], "class_dynamic_attributes__regex": [6, 11], "dynam": 6, "attribut": 6, "writabl": 6, "ones": 6, "explicitli": 6, "def_properti": [6, 11, 15], "class_deep_copy__regex": [6, 11], "class_copy__regex": [6, 11], "deep": 6, "howev": [6, 7, 9, 10, 14, 16, 18], "implicit": [6, 11, 13, 15], "invok": 6, "deepcopi": [6, 11], "class_copy_add_info_in_stub": [6, 11], "exist": 6, "__copy__": [6, 11], "__deepcopy__": [6, 11], "mention": 6, "iter": 6, "begin": [6, 10, 11], "made": 6, "class_iterables_info": [6, 11], "add_iterable_class": [6, 11], "python_class_name__regex": 6, "iterable_python_type_nam": 6, "class_template_opt": [6, 13], "scheme": 6, "myclass": [6, 9, 21, 22], "myclassint": 6, "class_name_regex": 6, "myprefix": 6, "select": 6, "cpp_types_list": 6, "naming_schem": 6, "templatenamingschem": 6, "camel_case_suffix": 6, "class_template_decorate_in_stub": 6, "properti": 6, "written": 6, "member_numeric_c_array_replace__regex": [6, 11], "member_numeric_c_array_typ": 6, "via": [6, 10, 15], "allow": 6, "don": 6, "byte": 6, "chararrai": 6, "inner": [6, 14], "place": [6, 21], "namespace_exclude__regex": [6, 14], "ii": [6, 14], "nternal": [6, 14], "dd": [6, 14], "etail": [6, 14], "enum_exclude_by_name__regex": 6, "typic": 6, "enumname_": 6, "myenum": 6, "myenum_a": 6, "myenum_b": 6, "enum_flag_remove_values_prefix": 6, "skip": 6, "myenum_count": 6, "enum_flag_skip_count": [6, 12], "rudimentari": 6, "arithmet": [6, 11], "level": [6, 7, 10], "enum_make_arithmetic__regex": [6, 12], "global": [6, 15], "my_float": 6, "5": [6, 12, 13, 15], "my_str": 6, "abc": [6, 15], "my_hex_valu": 6, "0x00010009": [6, 15], "limit": [6, 15], "hex": 6, "noth": 6, "post": 6, "postprocess_stub_funct": [6, 17], "postprocess_pydef_funct": [6, 17], "saniti": 6, "check": 6, "util": 6, "check_options_consist": 6, "certainti": 6, "candid": [6, 10], "uint_8t": 6, "standard": [6, 9, 10, 12], "cope": 6, "variou": 6, "implement": [6, 13, 16, 21], "authorized_typ": 6, "buffer_typ": 6, "_fn_params_buffer_types_list": 6, "rais": 6, "valueerror": 6, "build_typ": 6, "unauthor": 6, "join": 6, "_indent_cpp_spac": 6, "els": [6, 7, 10, 20, 22], "_indent_python_spac": 6, "split_string_by_pipe_char": 6, "_fn_params_buffer_template_types_list": 6, "_member_numeric_c_array_types_list": 6, "site": 6, "scroll": 6, "up": [6, 11], "header_filter_preprocessor_region": 6, "avail": 6, "scrml_warning_set": 6, "warningtyp": 6, "suffix": [6, 10], "could": 6, "__declspec": 6, "dllexport": 6, "dllimport": 6, "other_api": 6, "resolv": 6, "constexpr": 6, "space_dimens": 6, "named_number_macro": [6, 12, 15], "region": 6, "ifdef": [6, 7, 10], "some_rare_opt": 6, "endif": [6, 7, 10], "filter_preprocessor_region": 6, "header_filter_acceptable__regex": [6, 7], "header_guard": 6, "_h": [6, 7], "hpp": [6, 7], "hxx": [6, 7], "__cplusplu": [6, 7], "_h_": [6, 7], "befor": [6, 7, 17], "code_preprocess_funct": [6, 7, 17], "misc": 6, "encod": 6, "utf": 6, "8": 6, "cppemptylin": [6, 20], "preserve_empty_lin": 6, "flag_srcml_dump_posit": 6, "posit": [6, 13, 16], "tree": [6, 18], "cppelement": 6, "str_code": [6, 19, 20], "indent_cpp_str": 6, "verbos": 6, "quiet": 6, "mode": 6, "messag": 6, "discard": 6, "stderr": 6, "flag_quiet": 6, "ignored_warn": 6, "identifi": 6, "ignored_warning_part": [6, 13, 16], "callstack": 6, "flag_show_python_callstack": 6, "progress": 6, "dure": 6, "execut": [6, 19], "stdout": 6, "flag_show_progress": 6, "workaround": 6, "srcml": [6, 19], "1833": 6, "fix_brace_init_default_valu": 6, "functions_api_prefixes_list": 6, "assert": 6, "isinst": [6, 20], "_int_from_str_or_named_number_macro": 6, "int_str": 6, "except": 6, "zone": 7, "low": 7, "ifndef": 7, "occurr": [7, 14], "look": [7, 10, 11, 19], "my_header_h": 7, "inclus": 7, "guard": 7, "out": 7, "arcane_opt": 7, "enter": 7, "handl": [7, 10, 11, 12, 13, 16], "arcan": 7, "foo2": [7, 10, 11], "foo3": [7, 10], "common_opt": 7, "foo4": 7, "correct": [7, 10, 13], "adjust": [7, 22], "whether": [7, 10], "probabl": 7, "param_0": [7, 11, 17], "decid": [7, 10], "nprivat": 7, "preprocess_change_int": [7, 17], "int32": [7, 13, 17], "dumb": [7, 17], "print": [7, 17, 19, 20, 22], "demonstr": [8, 23], "relev": [9, 10, 11, 12, 13, 23], "extract": [9, 10, 23], "take": [9, 10, 21], "mypair": 9, "behav": 9, "pair": [9, 10], "present": [9, 21], "getminmax": 9, "correctli": [9, 11, 12, 13, 16, 18], "interpret": [9, 19], "get_min_max": 9, "account": 9, "add_last_replac": [9, 13], "captur": 9, "alreadi": [9, 14], "addnumb": [9, 20], "multiplierratio": 9, "camelcas": 9, "my_namespac": 9, "add_numb": [9, 20], "multiplier_ratio": 9, "pynsmynamespac": 9, "pynsmynamespace_classmyclass": 9, "relat": [10, 18], "wth": 10, "fn_": 10, "fn_param": 10, "deal": 10, "priv_": 10, "priv_setopt": 10, "setopt": 10, "publicopt": 10, "privateopt": 10, "priv_set_opt": 10, "set_opt": 10, "private_opt": 10, "But": 10, "close": [10, 19], "setoptions_adapt_exclude_param": 10, "fundament": 10, "manag": 10, "memori": [10, 21], "lifetim": 10, "lead": [10, 21], "trivial": 10, "just": [10, 22], "inform": [10, 13, 19], "clear": 10, "charg": 10, "eventu": 10, "resourc": 10, "reason": 10, "suppos": [10, 20, 21], "respons": 10, "destruct": [10, 22], "makewidget": 10, "makefoo": 10, "destructor": [10, 21, 22], "make_widget": 10, "make_foo": 10, "take_ownership": 10, "inoutflag": 10, "switchbool": 10, "switch_bool": 10, "in_out_v": 10, "situat": 10, "encapsul": [10, 21], "in_out_flag": 10, "switchbool_adapt_modifiable_immut": 10, "inoutflag_boxed_valu": 10, "sai": 10, "indic": [10, 23], "userinputstr": 10, "inoutstr": 10, "ask": [10, 13], "necessari": [10, 15], "user_input_str": 10, "in_out_str": 10, "userinputstring_adapt_modifiable_immutable_to_return": 10, "inoutstr_adapt_modifi": 10, "make_tupl": 10, "sometyp": 10, "foo_adapt_fixed_size_c_arrai": 10, "data": [10, 13], "understand": 10, "v_0": 10, "v_1": 10, "pyclassboxedint": 10, "v_raw": 10, "item_count": 10, "printitem": 10, "print_item": 10, "printitems_adapt_c_string_list": 10, "items_ptr": 10, "push_back": 10, "c_str": 10, "static_cast": 10, "log": [10, 20], "loglevel": 10, "log_adapt_variadic_format": 10, "plotxi": 10, "xvalu": 10, "yvalu": 10, "how_mani": 10, "plot_xi": 10, "x_valu": 10, "np": [10, 11, 15], "y_valu": 10, "tell": [10, 13, 15], "plot": 10, "60": [10, 11, 13], "plotxy_adapt_c_buff": 10, "xvalues_from_pyarrai": 10, "ssize_t": 10, "xvalues_count": 10, "shape": 10, "xvalues_typ": 10, "dtype": [10, 11, 15], "char_": 10, "throw": 10, "runtime_error": 10, "msg": 10, "bad": 10, "expect": [10, 18], "equival": 10, "yvalues_from_pyarrai": 10, "yvalues_count": 10, "yvalues_typ": 10, "numbertyp": 10, "color": 10, "effici": 10, "transmit": 10, "_win32": 10, "l": 10, "d": [10, 12], "q": 10, "reach": 10, "portion": [10, 11, 12, 13], "within": 10, "fn1": 10, "fn2": 10, "_v": 10, "math_funct": 10, "fn1_v": 10, "fn2_v": 10, "pynsmathfunct": 10, "detect": 10, "accordingli": 10, "someth": 10, "overload_cast": [10, 11, 13], "might": [10, 13, 16], "rare": 10, "suffici": 10, "discrimin": 10, "disambigu": 10, "foo3_adapt_force_lambda": 10, "sometim": [11, 15], "foodetail": [11, 14], "mdetail": 11, "pyclassfoo": [11, 13, 15], "foostruct": 11, "foostruct2": 11, "enum_": [11, 12], "pyclassfoostruct": 11, "pyclassfoostruct2": 11, "creation": [11, 14], "publicist": 11, "autom": [11, 21], "protected_method": 11, "pyclassa": 11, "a_publicist": 11, "trampolin": 11, "cumbersom": 11, "anim": 11, "n_time": 11, "pure": 11, "pyclassanim": 11, "animal_trampolin": 11, "pybind11_override_pure_nam": 11, "unknown": 11, "dog": 11, "result": 11, "bark": 11, "woof": 11, "30": [11, 12], "pyclassdog": 11, "dog_trampolin": 11, "pybind11_override_nam": 11, "dunder": 11, "intwrapp": 11, "unari": 11, "minu": 11, "__add__": 11, "__sub__": 11, "__neg__": 11, "__lt__": 11, "__iadd__": 11, "__call__": 11, "pyclassintwrapp": 11, "__le__": 11, "__eq__": 11, "__ge__": 11, "__gt__": 11, "pyclasspoint": 11, "cmp": 11, "pet": 11, "pick": 11, "pyclasspet": 11, "dynamic_attr": 11, "foo1": 11, "pyclassfoo2": 11, "memo": 11, "mycontain": 11, "idx": 11, "__len__": 11, "__getitem__": 11, "__iter__": 11, "pyclassmycontain": 11, "make_iter": 11, "keep_al": 11, "format_descriptor": [11, 15], "format": [11, 15], "sizeof": [11, 15], "nest": 11, "host": 11, "choic": 11, "handlechoic": 11, "handle_choic": 11, "foo_a": 12, "about": [12, 13, 21, 22, 23], "comput": 12, "On": 12, "foo_b": 12, "foo_c": 12, "foo_d": 12, "foo_": 12, "foo_count": 12, "suppress": [12, 15], "256": [12, 15], "uncom": [12, 14], "definit": 12, "customiz": 13, "rang": 13, "complain": 13, "unhandl": 13, "maxvalu": 13, "litgentemplatefunctionignor": [13, 16], "while": [13, 14, 16], "function_decl": [13, 16], "add_suffix_to_function_nam": 13, "max_valu": 13, "instead": 13, "voi": 13, "logvalu": 13, "log_value_int": 13, "log_value_float": 13, "sophist": 13, "imguiconfig": 13, "config": 13, "z": 13, "za": 13, "z0": 13, "9": 13, "imvector": 13, "imvector_int32": 13, "imvector_int": 13, "With": 13, "imvector_config": 13, "intvalu": 13, "miss": 13, "undefin": 13, "becaus": 13, "16": [13, 16], "imvector_float_ptr": 13, "imvector_int32_t": 13, "pyclassimguiconfig": 13, "pyclassimvector_imguiconfig": 13, "pyclassimvector_float_ptr": 13, "pyclassimvector_int32_t": 13, "append": [13, 16], "thank": 14, "occur": 14, "twice": 14, "fake": 14, "realli": 14, "avoid": 14, "maintain": 14, "perfect": 14, "anonym": 14, "fooroot": 14, "localfunct": 14, "becom": 14, "fooinner": 14, "second": 14, "merg": 14, "fooinner2": 14, "foo_root": 14, "foo_inn": 14, "foo_inner2": 14, "pynsinn": 14, "mylib_valu": 15, "mylib_float": 15, "mylib_str": 15, "mylib_hex_valu": 15, "renam": 15, "mylib_": 15, "add_first_replac": 15, "z_": 15, "hex_valu": 15, "know": [15, 16], "my_count": 15, "encount": [16, 20], "10_05_10_sample_cod": 16, "load": 16, "trigger": 16, "myoper": 16, "v2": 16, "calloper": 16, "functionptr": 16, "generate_code_for_fil": 16, "srcmlcppignoreel": 16, "cppunprocess": 16, "21": 16, "19": 16, "litgenblockelementexcept": 16, "7": 16, "studi": 16, "harlmess": 16, "next": 16, "anymor": 16, "what": [16, 18, 19], "answertotheultimatequestionoflife_theuniverse_andeveryth": 17, "postprocess_stub": 17, "unindent_cod": 17, "copyright": 17, "2023": 17, "pascal": 17, "thomet": 17, "ye": 17, "claim": 17, "magnific": 17, "At": 17, "least": 17, "tri": 17, "postprocess_pydef": 17, "answer_to_the_ultimate_question_of_life_the_universe_and_everyth": 17, "never": 18, "fail": [18, 22], "regener": 18, "corner": 18, "gotcha": 18, "wherea": 18, "three": 19, "perform": 19, "textual": 19, "manipul": 19, "produc": 19, "resembl": 19, "ast": 19, "descend": 19, "reflect": 19, "answer": 19, "nullptr": 19, "cpp_unit": [19, 20], "code_to_cpp_unit": [19, 20], "repres": 19, "debugg": 19, "cppunit": [19, 20], "cppstruct": 19, "visibl": [19, 21], "default_access_typ": 19, "obtain": 19, "str_code_verbatim": [19, 20], "srcml_xml": 19, "guarante": 19, "token": 19, "diagram": 19, "adaptedel": 19, "mymodule_class": 20, "visitor_log_info": 20, "cpp_element": 20, "event": 20, "cppelementsvisitorev": 20, "depth": 20, "onel": 20, "short_cpp_element_info": 20, "visit_cpp_breadth_first": 20, "cppfunctiondecl": 20, "cpptype": 20, "cppparameterlist": 20, "cppparamet": 20, "cppdecl": 20, "mass": 20, "mymodule_": 20, "mymodul": 20, "our": 20, "achiev": 20, "my_refactor_visitor": 20, "to_snake_cas": 20, "change_function_to_snake_cas": 20, "cpp_function": 20, "function_nam": 20, "cpp_element_com": 20, "comment_on_previous_lin": 20, "make_my_module_namespac": 20, "cpp_type": 20, "change_typenam": 20, "startswith": 20, "visitor": 20, "elif": 20, "still": 20, "retain": 20, "program": 21, "represent": 21, "through": 21, "opaqu": 21, "Its": 21, "advantag": 21, "real": 21, "oppos": 21, "hide": 21, "remain": 21, "clearli": 21, "abi": 21, "stabil": 21, "improv": 21, "implemen": 21, "drawback": 21, "indirect": 21, "lot": 21, "often": 21, "tediou": 21, "srcmlcpp_tool": [21, 22], "pimpl_my_class": [21, 22], "boiler": 21, "somewher": 21, "myclasspimpl": [21, 22], "demo_cpp_no_mark": 21, "my_class": [21, 22], "futur": [21, 22], "block": 21, "instanc": [21, 22], "somevar": 21, "somemethod": [21, 22], "somestaticmethod": 21, "unique_ptr": [21, 22], "someprivatemethod": [21, 22], "msomeprivatememb": [21, 22], "manoterprivatememb": [21, 22], "pimpl_my_cod": [21, 22], "pimpl_result": [21, 22], "header_cod": [21, 22], "bottom": 21, "mpimpl": [21, 22], "pimpl_my_fil": 21, "These": 21, "pimpl_glue_cod": 21, "pimpl_header_cod": 21, "short": 21, "cpp_file": 21, "header_fil": [21, 23], "create_pimpl_example_fil": 21, "show_cpp_fil": 21, "var": 21, "w1": 21, "w77kvvl9613022ksfxj7v8xh0000gn": 21, "tmpd1996t0z": 21, "mystructpimpl": 21, "pragma": 21, "pimplopt": [21, 22], "pimpl_opt": [21, 22], "pimpl_suffix": [21, 22], "mystruct": 21, "someparam": 22, "somestaticfunct": 22, "daftlib": 23, "popul": 23, "explan": 23, "section": 23, "info": 23, "cpp_sourc": 23, "sampl": 23, "daftlib2": 23, "autogenerate_daft_lib": 23, "script": 23, "purpos": 23, "daftlib_amalgam": 23, "daftlib_bind": 23, "pybind_daftlib": 23, "glue_code_daftlib": 23, "daftlib_stub": 23, "daft_lib": 23, "py_init_module_daft_lib": 23, "litgen_pydef": 23, "litgen_glue_cod": 23, "litgen_stub": 23, "write_generated_code_for_fil": 23, "input_cpp_header_fil": 23, "input_cpp_head": 23, "output_cpp_pydef_fil": 23, "output_stub_pyi_fil": 23, "output_cpp_glue_code_fil": 23, "amalgamated_head": 23, "make_amalgamated_head": 23, "amalgamationopt": 23, "base_dir": 23, "this_dir": 23, "local_includes_startwith": 23, "include_subdir": 23, "main_header_fil": 23, "dst_amalgamated_header_fil": 23, "write_amalgamate_header_fil": 23, "daftlib_2": 23}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"litgen": [0, 2, 3, 6, 16, 19], "what": 0, "srcml": [0, 3, 18], "document": 0, "bind": [0, 4, 23], "exampl": [0, 13, 16, 21], "compat": 0, "licens": 0, "support": 0, "tabl": 0, "content": [0, 7], "instal": [0, 1, 3], "basic": 0, "advanc": 0, "topic": 0, "c": [0, 10, 11, 12, 18, 19, 20], "transform": [0, 19, 20], "tool": 0, "onlin": [1, 2, 22], "usag": [1, 4, 10], "us": [2, 10, 18], "local": 3, "step": [3, 4], "1": 3, "precompil": 3, "binari": 3, "build": 3, "from": [3, 19], "sourc": [3, 19], "2": 3, "without": 3, "check": 3, "out": 3, "code": [3, 4, 8, 16, 19, 20], "first": 4, "gener": [4, 8, 22, 23], "function": [4, 10, 11, 13, 18], "simpl": [4, 10, 20, 21], "class": [4, 11, 12, 13, 21], "struct": [4, 11], "option": [4, 6], "about": [4, 6], "glue": 4, "insid": 4, "notebook": 4, "cmake": 5, "helper": 5, "note": 6, "regex": 6, "main": 6, "srcmlcpp": [6, 19], "header": [7, 17, 23], "process": [7, 17], "filter": 7, "api": 7, "prefix": 7, "preprocess": [7, 17], "layout": 8, "name": [9, 11], "type": [9, 10, 19], "translat": 9, "replac": 9, "convert": 9, "snake": 9, "case": 9, "exclud": [10, 11], "param": [10, 11], "return": 10, "polici": 10, "return_value_polici": 10, "refer": 10, "custom": 10, "valu": [10, 15, 18], "modifi": 10, "immut": 10, "box": 10, "ad": 10, "output": 10, "style": 10, "arrai": [10, 11], "string": 10, "list": 10, "variad": 10, "format": 10, "pass": 10, "numer": [10, 11, 15], "buffer": 10, "numpi": 10, "templat": [10, 13], "vector": 10, "accept": 10, "arg": 10, "kwarg": 10, "forc": 10, "overload": [10, 11, 13], "automat": 10, "manual": 10, "lambda": 10, "member": 11, "default": [11, 18], "constructor": 11, "expos": 11, "protect": 11, "overrid": 11, "virtual": 11, "method": 11, "python": [11, 15], "combin": 11, "inherit": 11, "oper": 11, "addit": 11, "substract": 11, "etc": 11, "comparison": 11, "spaceship": 11, "dynam": 11, "attribut": 11, "copi": 11, "deep": 11, "iter": 11, "inner": 11, "enum": [11, 12], "classic": 12, "arithmet": 12, "export": [13, 15], "an": [13, 23], "decor": 13, "suffix": 13, "introduct": 13, "instanti": 13, "suppress": [13, 16], "warn": [13, 16], "namespac": 14, "preprocessor": 15, "macro": 15, "modul": 15, "set": 15, "ignor": 16, "potenti": 16, "emit": 16, "postprocess": 17, "post": 17, "stub": 17, "pydef": 17, "file": [17, 23], "pars": [18, 19], "advic": 18, "don": 18, "t": 18, "s": 18, "paramet": 18, "cppelement": [19, 20], "tree": [19, 20], "verbatim": 19, "visit": 20, "pimpl": [21, 22], "my": 21, "autogener": 21, "boilerpl": 21, "A": 21, "run": 21, "pimplmycod": 21, "whole": 21, "codebas": 21, "librari": 23, "overview": 23, "marker": 23, "one": 23, "amalgam": 23, "collect": 23}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/litgen-book/20_10_00_pimpl_my_class.ipynb b/litgen-book/20_10_00_pimpl_my_class.ipynb index d9e6223f..18a0da38 100644 --- a/litgen-book/20_10_00_pimpl_my_class.ipynb +++ b/litgen-book/20_10_00_pimpl_my_class.ipynb @@ -89,7 +89,7 @@ "\n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", "
MyClass::MyClass(const std::string & someVar)\n",
        "    : mPImpl(std::make_unique<MyClassPImpl>(someVar)) { }\n",
-       "virtual bool MyClass::SomeMethod() {\n",
+       "bool MyClass::SomeMethod() {\n",
        "    return mPImpl->SomeMethod(); }\n",
        "bool MyClass::SomeStaticMethod() {\n",
        "    return MyClassPImpl::SomeStaticMethod(); }\n",
@@ -655,10 +655,10 @@
        "    
\n", " \n", " \n", " \n", " \n", " " @@ -764,14 +764,14 @@ "\n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", " \n", "\n", " \n", - " \n", - "
\n", + " \n", + "
\n", "
\n", - " \n", + " \n", "
\n", "
MyClass::MyClass(const std::string & someVar)\n",
-       "    : mPImpl(std::make_unique<MyClassPImpl>(someVar)) { }\n",
-       "virtual bool MyClass::SomeMethod() {\n",
+       ".highlight .il { color: #8f3f71 } /* Literal.Number.Integer.Long */ 
MyClass::MyClass(const std::string & someParam)\n",
+       "    : mPImpl(std::make_unique<MyClassPImpl>(someParam)) { }\n",
+       "bool MyClass::SomeMethod() {\n",
        "    return mPImpl->SomeMethod(); }\n",
-       "bool MyClass::SomeStaticMethod() {\n",
-       "    return MyClassPImpl::SomeStaticMethod(); }\n",
+       "bool MyClass::SomeStaticFunction() {\n",
+       "    return MyClassPImpl::SomeStaticFunction(); }\n",
        "MyClass::~MyClass() = default;\n",
        "
\n", "\n", "
\n", " \n", " \n", " \n", " \n", " " @@ -430,37 +424,33 @@ "// Some doc about the class, that you want to see in the header file\n", "class MyClassPImpl\n", "{\n", - "public:\n", " //\n", - " // Some doc you also want to see in the header file, since it is in a public block\n", + " // Some doc you also want to see in the header file\n", " //\n", - "\n", + "public:\n", " // Construct an Instance\n", - " MyClassPImpl(const std::string& someVar)\n", + " MyClassPImpl(const std::string& someParam)\n", " {\n", " // Some code you provide in the C++ file, but do not want to see in the header file\n", " }\n", "\n", + " // Destructs the instance\n", + " // (this should not be published in the header, since the PImpl will generate its own unique_ptr destructor)\n", + " ~MyClassPImpl() { /* ... */ }\n", + "\n", " // Some method\n", - " virtual bool SomeMethod() { /* ... */ }\n", + " bool SomeMethod() { /* ... */ return true; }\n", "\n", " // Some public static method\n", - " static bool SomeStaticMethod() { /* ... */ }\n", + " static bool SomeStaticFunction() { /* ... */ return true;}\n", "\n", - " // The destructor should not be published as is, but should use the unique_ptr default destructor\n", - " ~MyClassPImpl() { /* ... */ }\n", "\n", "private:\n", - " //\n", - " // Some private doc, which should not be published\n", - " //\n", - " \n", - " bool SomePrivateMethod() { /* ... */ }\n", + " void SomePrivateMethod() { /* ... */ }\n", "\n", " std::string mSomePrivateMember;\n", " std::future mAnoterPrivateMember;\n", "};\n", - "\n", "\"\"\"\n", "\n", "pimpl_result = pimpl_my_class.pimpl_my_code(cpp_code, pimpl_options, srcmlcpp_options)\n", diff --git a/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.cpp b/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.cpp index b8c1ae15..ec298293 100644 --- a/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.cpp +++ b/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.cpp @@ -20,15 +20,15 @@ class MyClassPImpl // (this should not be published in the header, since the PImpl will generate its own unique_ptr destructor) ~MyClassPImpl() { /* ... */ } - // Some method (virtual or not) - virtual bool SomeMethod() { /* ... */ } + // Some method + bool SomeMethod() { /* ... */ return true; } // Some public static method - static bool SomeStaticFunction() { /* ... */ } + static bool SomeStaticFunction() { /* ... */ return true;} private: - bool SomePrivateMethod() { /* ... */ } + void SomePrivateMethod() { /* ... */ } std::string mSomePrivateMember; std::future mAnoterPrivateMember; @@ -40,7 +40,7 @@ class MyClassPImpl // // Autogenerated code below! Do not edit! MyClass::MyClass(const std::string & someParam) : mPImpl(std::make_unique(someParam)) { } -virtual bool MyClass::SomeMethod() { +bool MyClass::SomeMethod() { return mPImpl->SomeMethod(); } bool MyClass::SomeStaticFunction() { return MyClassPImpl::SomeStaticFunction(); } diff --git a/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.h b/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.h index 4e3ac73e..ee45da85 100644 --- a/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.h +++ b/packages/srcmlcpp_tools/pimpl_my_class/cpp_tests/my_class_pimpl/my_class.h @@ -14,8 +14,8 @@ class MyClass MyClass(const std::string & someParam); - // Some method (virtual or not) - virtual bool SomeMethod(); + // Some method + bool SomeMethod(); // Some public static method static bool SomeStaticFunction(); diff --git a/packages/srcmlcpp_tools/pimpl_my_class/pimpl_my_class.py b/packages/srcmlcpp_tools/pimpl_my_class/pimpl_my_class.py index 76cf2e3c..f48e4ceb 100644 --- a/packages/srcmlcpp_tools/pimpl_my_class/pimpl_my_class.py +++ b/packages/srcmlcpp_tools/pimpl_my_class/pimpl_my_class.py @@ -365,7 +365,7 @@ class MyClassPImpl } // Some method - virtual bool SomeMethod() { /* ... */ } + bool SomeMethod() { /* ... */ } // Some public static method static bool SomeStaticMethod() { /* ... */ } @@ -396,7 +396,7 @@ def demo_cpp_no_marker(): struct MyStructPImpl { MyStructPImpl() { /* ...*/ } - virtual bool SomeMethod() { /* ... */ } + bool SomeMethod() { /* ... */ } private: bool SomePrivateMethod() { /* ... */ } int mSomePrivateMember;