Skip to content

Compile error when using KDBindings in combination with Qt #79

@AndreasSchacherbauer

Description

@AndreasSchacherbauer

Hi!
I wanted to use KSBindings in a project where I also use Qt. At a certain point I needed to include kdbindings/signal.h as well as QObject. This then results in a compile error (on gcc as well as clang). As I investigated further it turned out that the order of includes matter. If KDBindings is included first, it works. If QObject is first then it doesn’t.
I was surprised and wanted to ask if this is a known limitation.

The compile error looks like the following:

[  9%] Building CXX object CMakeFiles/workshop_episode_001.dir/src/Translator.cpp.o
In file included from src/Translator.cpp:3:
In file included from include/IResourceManager.hpp:3:
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:285:23: error: expected ')'
        void emit(Args... p) const
                      ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:285:18: note: to match this '('
        void emit(Args... p) const
                 ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:285:19: error: declaration of 'Args' shadows template parameter
        void emit(Args... p) const
                  ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:213:22: note: template parameter is declared here
template<typename... Args>
                     ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:285:19: error: field has incomplete type 'void'
        void emit(Args... p) const
                  ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:285:29: error: expected ';' at end of declaration list
        void emit(Args... p) const
                            ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:308:49: error: use of undeclared identifier 'Connection'
        mutable Private::GenerationalIndexArray<Connection> m_connections;
                                                ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:488:19: error: expected ')'
    void emit(Args... p) const
                  ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:488:14: note: to match this '('
    void emit(Args... p) const
             ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:488:15: error: declaration of 'Args' shadows template parameter
    void emit(Args... p) const
              ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:213:22: note: template parameter is declared here
template<typename... Args>
                     ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:488:15: error: field has incomplete type 'void'
    void emit(Args... p) const
              ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:488:25: error: expected ';' at end of declaration list
    void emit(Args... p) const
                        ^
conan_cache/.conan/data/kdbindings/1.0.1/conan_toolchain_catalog/build/package/e7a4df623f2f69d6974a12334b94709d4f79466f/include/kdbindings/signal.h:259:13: error: unknown type name 'Connection'
            Connection *connection = m_connections.get(id);
            ^
10 errors generated.
make[3]: *** [CMakeFiles/workshop_episode_001.dir/build.make:161: CMakeFiles/workshop_episode_001.dir/src/Translator.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:1247: CMakeFiles/workshop_episode_001.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1254: CMakeFiles/workshop_episode_001.dir/rule] Error 2
make: *** [Makefile:712: workshop_episode_001] Error 2 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions