mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-22 00:02:40 +00:00

We currently forward declare classes as we use them in functions. But this breaks if classes with the same name were declared in the parent namespace. As shown with this example ```C++ // Uncomment that line to make the code break //struct SharedGlobals; namespace ns { // Is that a forward declaration in `ns`? // Depends if it was declared before in the parent namespace void foo(struct SharedGlobals *x) {} // Actualy define ns::SharedGlobal struct SharedGlobals { int x; }; int xyz() { SharedGlobals globals; foo(&globals); } } ``` So make sure we forward-declare the classes properly to be more robust and be able to include generated file with namespace after a file without namespace CC #2909
5 lines
405 B
Markdown
5 lines
405 B
Markdown
<!-- Copyright © SixtyFPS GmbH <info@slint.dev> ; SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 -->
|
|
|
|
This is a test making sure that the header can be included in several compilation without causing multiple definitions
|
|
|
|
And also that we can include two different generated headers generated different namespaces in the same compilation unit
|