История изменений
Исправление fsb4000, (текущая версия) :
В этом синтаксисе есть какой-то глубокий смысл?
Конечно есть. И да, мы можем просто указывать module с именем.
// math.mpp, декларация
export module math;
export int add(int fir, int sec);
// math.cpp , реализация
module math;
int add(int fir, int sec){
return fir + sec;
}
Проблема в том, что в нашем модуле, мы не можем пользоваться include, потому что в модулях нет макросов.
// нельзя
module my_game;
#include <SDL.h>
Мы можем лишь так
module my_game;
import <SDL.h>;
Но это импортирует нам лишь функции и переменные, классы, шаблоны, но не макросы. Но нам нужны макросы. Тогда и решили сделать unnamed module, который не будет экспортироваться, но в котором разрешены #include
module;
#include <windows.h>
// можно и свои макросы определить
module bar;
// Win32 макросы и функции и всё-всё доступно
Если макросы не нужны, то будет как в Java/Pascal.
Исправление fsb4000, :
В этом синтаксисе есть какой-то глубокий смысл?
Конечно есть. И да, мы можем просто указывать module с именем.
// math.mpp, декларация
export module math;
export int add(int fir, int sec);
// math.cpp , реализация
module math;
int add(int fir, int sec){
return fir + sec;
}
Проблема в том, что в нашем модуле, который будет экспортирован мы не можем пользоваться include, потому что в модулях нет макросов.
// нельзя
module my_game;
#include <SDL.h>
Мы можем лишь так
module my_game;
import <SDL.h>;
Но это импортирует нам лишь функции и переменные, классы, шаблоны, но не макросы. Но нам нужны макросы. Тогда и решили сделать unnamed module, который не будет экспортироваться, но в котором разрешены #include
module;
#include <windows.h>
// можно и свои макросы определить
module bar;
// Win32 макросы и функции и всё-всё доступно
Если макросы не нужны, то будет как в Java/Pascal.
Исходная версия fsb4000, :
В этом синтаксисе есть какой-то глубокий смысл?
Конечно есть. И да, мы можем просто указывать module с именем.
// math.mpp, декларация
export module math;
export int add(int fir, int sec);
// math.cpp , реализация
module math;
int add(int fir, int sec){
return fir + sec;
}
Проблема в том, что в нашем модуле, который будет экспортирован мы не можем пользоваться include, потому что в модулях нет макросов.
// нельзя
module my_game;
#include <SDL.h>
Мы можем лишь так
module my_game;
import <SDL.h>;
Но это импортирует нам лишь функции и переменные, но не макросы. Но нам нужны макросы. Тогда и решили сделать unnamed module, который не будет экспортироваться, но в котором разрешены #include
module;
#include <windows.h>
module bar;
// Win32 макросы и функции и всё-всё доступно.
Если макросы не нужны, то будет как в Java/Pascal.