Spec Sistemas Com Cpp • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_1_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_2_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_3_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_19_4_SeuNome
  2. 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