🧩 Exercícios: Módulos C++20 (import/export) e Build Systems com CMake
Spec Sistemas Com Cpp • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 19.1 — Criação de Interface de Módulo com export module
Contexto: Criação de Interface de Módulo com export module no contexto de Módulos C++20 (import/export) e Build Systems com CMake.
Requisitos de Execução:
- Declarar módulo C++20
export module matematica;exportando funções matemáticas.
Resultado Esperado
Módulo C++20 compilado sem necessidade de arquivos .h legados.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_1_SeuNome - Envie na tarefa:
Atividade Cap 19 - Módulos C++20 (import/export) e Build Systems com CMake
🔑 Gabarito de Código & Solução Comentada
// modulo_matematica.cpp
export module matematica;
export namespace Matematica {
int somar(int a, int b) { return a + b; }
int multiplicar(int a, int b) { return a * b; }
}
🔍 Nível 2: Prática
Problema 19.2 — Consumo de Módulo com import no Código Cliente
Contexto: Consumo de Módulo com import no Código Cliente no contexto de Módulos C++20 (import/export) e Build Systems com CMake.
Requisitos de Execução:
- Importar módulo compilado com
import matematica;e invocar funções exportadas.
Resultado Esperado
Módulo consumido com isolamento total de macros e alta velocidade de compilação.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_2_SeuNome - Envie na tarefa:
Atividade Cap 19 - Módulos C++20 (import/export) e Build Systems com CMake
🔑 Gabarito de Código & Solução Comentada
// main.cpp
import matematica;
#include <iostream>
int main() {
std::cout << "Soma via Modulo C++20: " << Matematica::somar(15, 30) << std::endl;
return 0;
}
⚡ Nível 3: Integração
Problema 19.3 — Configuração de Módulos C++20 no CMake 3.28+
Contexto: Configuração de Módulos C++20 no CMake 3.28+ no contexto de Módulos C++20 (import/export) e Build Systems com CMake.
Requisitos de Execução:
- Configurar
target_sources(app PUBLIC FILE_SET CXX_MODULES FILES ...)no CMakeLists.txt.
Resultado Esperado
CMake orquestrando compilação e dependências de módulos C++20 nativamente.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_3_SeuNome - Envie na tarefa:
Atividade Cap 19 - Módulos C++20 (import/export) e Build Systems com CMake
🔑 Gabarito de Código & Solução Comentada
cmake_minimum_required(VERSION 3.28)
project(ModulosDemo LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(app main.cpp)
target_sources(app PUBLIC FILE_SET CXX_MODULES FILES modulo_matematica.cpp)
🏆 Nível 4: Desafio Corporativo
Problema 19.4 — Partições de Módulos (Module Partitions)
Contexto: Partições de Módulos (Module Partitions) no contexto de Módulos C++20 (import/export) e Build Systems com CMake.
Requisitos de Execução:
- Dividir módulo corporativo complexo em subpartições
export module core:interno;.
Resultado Esperado
Módulo particionado mantendo organização interna limpa e encapsulada.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_19_4_SeuNome - Envie na tarefa:
Atividade Cap 19 - Módulos C++20 (import/export) e Build Systems com CMake
🔑 Gabarito de Código & Solução Comentada
// core_interno.cpp
export module core:interno;
export void log_interno() {
// Logica interna encapsulada
}
// Validacao adicional
int status_ok = 1;
(void)status_ok;
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |