Могу ли я импортировать фрагмент глобального модуля?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Могу ли я импортировать фрагмент глобального модуля?

Сообщение Anonymous »

Раньше у меня были такие заголовки:

Код: Выделить всё

#include "glm/vec2.h"

struct Foo
{
glm::vec2 myvec;

};
Теперь вместо включения заголовков glm я решил создать glm_module.cppm и экспортировать определения векторных типов, поэтому у меня есть:

Код: Выделить всё

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

export using myvec2 = glm::vec2;
И это довольно заурядное преобразование в модули. И это работает. Однако теперь, поскольку мои векторные типы находятся в модуле, а не в заголовках, которые нужно включить, очевидно, теперь я бы хотел включить свой файл заголовка:

Код: Выделить всё

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

class Foo
{
myvec2 myvector;
};
Я думаю, это нормально, однако этот заголовок, содержащий Foo, представьте, что теперь я хочу включить этот заголовок в модуль. SomeOtherModule.cppm:

Код: Выделить всё

module;
#include "header_which_defines_foo.h"
export module SomeOtherModule;
Теперь, поскольку «header_that_defines_foo.h» «импортирует glm_module», я по сути импортирую glm_module во фрагмент глобального модуля:

Код: Выделить всё

module;
#include "header_which_defines_foo.h" // THIS IS THE GLOBAL MODULE FRAGMENT
export module SomeOtherModule;
И я слышал, что вы не можете импортировать фрагмент глобального модуля. Разве это невозможно?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-fragment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»