Code Monkey home page Code Monkey logo

graal-lib's Introduction

# Lista de Exercício sobre Ranges e Funções Templates

Essa lista de exercícios tem por objetivo o desenvolvimento de uma biblioteca de funções template que operam sobre ranges, i.e. um par de ponteiros que definem um intervalo aberto-fechado sobre uma coleção. A programação com template ou gabarito em C++ permite que você programe uma função sem especificar o tipo de dados sobre o qual a função vai trabalhar. Dessa forma é possível, por exemplo, criar uma única função de ordenação que ordenda qualquer coleção de informações, como inteiros, strings, frutas e monstros.

Compilando o Projeto

Usando cmake

Nesta lista, todos os exercícios serão implementados na forma de uma função template. Existem um arquivo tests/main.cpp onde os testes unitários para cada função foram implementados. Você pode olhar esse arquivo para entender como os testes foram projetados, mas você não deve alterá-lo.

A compilação e execução das questões pode ser feita usando cmake. A partir da pasta raiz do projeto faça:

cmake -S . -B build

para gerar os arquivos Makefiles do projeto na pasta build que será criada. Em seguinda compile com:

cmake --build build --target run_tests

Esse comando ativa a compilação e, em seguida, executa os testes.

Alternativamente, se você desejar apenas compilar e não rodar os testes, utilize:

cmake --build build

A compilação gera um executável com o nome all_tests dentro da pasta build/tests.

Logo após a compilação, para executar o programa com os testes use os comandos:

./build/tests/all_tests

Caso você deseje repetir o processo de compilação, digamos, após uma alteração, basta executar o comando make dentro da pasta build.

Usando Compilação Manual com g++

É possível compilar o programa "na mão" (i.e. sem o cmake) usando o g++. Para isso use o comando abaixo a partir do diretório raiz do projeto.

mkdir -p build

para criar a pasta build onde o executável será gerado, e

g++ -Wall -std=c++17 -pedantic tests/include/tm/test_manager.cpp tests/main.cpp -I include -I tests/include/tm -o build/all_tests

para compilar e gerar o executável em build.

O executável será gerado na pasta build, bastando executá-lo depois, como explicado acima.

© DIMAp/UFRN 2020-2024.

graal-lib's People

Contributors

ryann0097 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.