Kann ich das globale Modulfragment importieren?C++

Programme in C++. Entwicklerforum
Anonymous
 Kann ich das globale Modulfragment importieren?

Post by Anonymous »

Früher hatte ich Header, die so aussahen:

Code: Select all

#include "glm/vec2.h"

struct Foo
{
glm::vec2 myvec;

};
Anstatt die GLM-Header einzuschließen, habe ich mich nun entschieden, eine glm_module.cppm zu erstellen und die Vektor-Typedefs zu exportieren, also habe ich:

Code: Select all

module;
#include "glm/vec2.h"
export module glm_module;

export using myvec2 = glm::vec2;
Und das ist eine ziemlich gewöhnliche Konvertierung in Module. Und es funktioniert. Da sich meine Vektortypen jedoch jetzt in einem Modul und nicht in den einzubindenden Headern befinden, möchte ich jetzt natürlich in meiner Header-Datei Folgendes haben:

Code: Select all

//#include "glm/vec2.h" // REMOVE THIS, NO LONGER INCLUDING
import glm_module;

class Foo
{
myvec2 myvector;
};
Nun, ich denke, das ist in Ordnung, aber dieser Header, der Foo enthält, stellen Sie sich vor, ich möchte diesen Header jetzt in ein Modul einbinden. SomeOtherModule.cppm:

Code: Select all

module;
#include "header_which_defines_foo.h"
export module SomeOtherModule;
Da „header_which_defines_foo.h“ nun „glm_module importieren“ ausführt, importiere ich im Wesentlichen glm_module im globalen Modulfragment:

Code: Select all

module;
#include "header_which_defines_foo.h" // THIS IS THE GLOBAL MODULE FRAGMENT
export module SomeOtherModule;
Und ich habe gehört, dass Sie das globale Modulfragment nicht importieren können. Ist das nicht möglich?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post