Wie soll ich import std verwenden, aber auch einen Drittanbieter-Header einbinden? [geschlossen]C++

Programme in C++. Entwicklerforum
Anonymous
 Wie soll ich import std verwenden, aber auch einen Drittanbieter-Header einbinden? [geschlossen]

Post by Anonymous »

Anscheinend ist es illegal, std zu importieren UND einen Standardbibliotheksheader einzuschließen? Das ist für mich in Ordnung, ich kann das eine oder das andere tun, aber ich kann keine Bibliothek in derselben Übersetzungseinheit verwenden, weil DAS zufällig oder enthält? Soll es so funktionieren?
Ich habe versucht, auf Clang und MSVC zu kompilieren, es scheint, dass sie das Mischen der beiden nicht zulassen. Wie soll man dann einen Header aus einer Bibliothek eines Drittanbieters einbinden? Gibt es dafür einen Trick, zum Beispiel „Einschließen vor Importen“ oder „Importieren vor Einschließen“ oder so etwas? Wirklich neugierig.
Gibt es außerdem einen Unterschied, ob man dies in einem Modul oder in einer einfachen alten Quelldatei macht? Gibt es hierfür zum Beispiel eine Ausnahme für das globale Modulfragment oder so? Wie wäre es mit einer einfachen Übersetzungseinheit, die kein Modul ist?
Einige Fehler, die ich erhalten habe:

/usr/lib/llvm-22/bin/../include/c++/v1/__ranges/zip_view.h:238:11:
error: require-Klausel unterscheidet sich in der Vorlagen-Neudeklaration
/usr/lib/llvm-22/bin/../include/c++/v1/__flat_map/flat_map.h:53:10:
Hinweis: '/usr/lib/llvm-22/bin/../include/c++/v1/__ranges/zip_view.h'
mehrmals enthalten, zusätzliche Include-Site im Header des Moduls
'std.' 53 | #include
/usr/lib/llvm-22/bin/../include/c++/v1/__ranges/zip_view.h:206:9:
Fehler: Neudefinition des Konzepts „__zip_all_forward“ mit anderen Vorlagenparametern oder Anforderungen 206 | Konzept __zip_all_forward
= (forward_range && ...);

Ein weiteres Beispiel aus meinem Projekt:

Code: Select all

// In a cpp file

#define STB_IMAGE_RESIZE_IMPLEMENTATION
#include "stbi_resize.h"
#define STB_IMAGE_WRITE_IMPLEMENTATION
#include "stbi_write.h"
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"

import std; // How am I supposed use this if those headers include the standard library headers?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post