From bb10a715c31015bd0812029f9b8ffc6747a6ce68 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Tue, 19 Sep 2023 11:39:57 +0200 Subject: [PATCH] Add CPP --- cpp/.gitignore | 2 ++ cpp/.vscode/extensions.json | 3 +++ cpp/.vscode/settings.json | 8 ++++++++ cpp/Makefile | 26 ++++++++++++++++++++++++++ cpp/includes/Example.hpp | 10 ++++++++++ cpp/src/Example.cpp | 3 +++ cpp/src/main.cpp | 7 +++++++ 7 files changed, 59 insertions(+) create mode 100644 cpp/.gitignore create mode 100644 cpp/.vscode/extensions.json create mode 100644 cpp/.vscode/settings.json create mode 100644 cpp/Makefile create mode 100644 cpp/includes/Example.hpp create mode 100644 cpp/src/Example.cpp create mode 100644 cpp/src/main.cpp diff --git a/cpp/.gitignore b/cpp/.gitignore new file mode 100644 index 0000000..25064ae --- /dev/null +++ b/cpp/.gitignore @@ -0,0 +1,2 @@ +*.o +example diff --git a/cpp/.vscode/extensions.json b/cpp/.vscode/extensions.json new file mode 100644 index 0000000..eebff7e --- /dev/null +++ b/cpp/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["llvm-vs-code-extensions.vscode-clangd"] +} diff --git a/cpp/.vscode/settings.json b/cpp/.vscode/settings.json new file mode 100644 index 0000000..f9604d4 --- /dev/null +++ b/cpp/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "editor.tabSize": 2, + "editor.insertSpaces": false, + + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true +} diff --git a/cpp/Makefile b/cpp/Makefile new file mode 100644 index 0000000..aaf3e81 --- /dev/null +++ b/cpp/Makefile @@ -0,0 +1,26 @@ +CXX = g++ +CXXFLAGS = --std=c++11 +RM = rm + +SOURCES = $(wildcard src/*.cpp) +OBJETS = $(patsubst %.cpp,%.cpp.o,$(notdir $(SOURCES))) + +EXE = example + +%.cpp.o: src/%.cpp + $(CXX) -c -o $@ $< $(CXXFLAGS) $(DEVFLAGS) + +main: CXXFLAGS += -O3 +main: compilation + +dev: CXXFLAGS += -Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic -g -Wold-style-cast -Wsign-conversion +dev: compilation + +compilation: $(OBJETS) + $(CXX) -o $(EXE) $(OBJETS) + +all: + main + +clean: + $(RM) $(OBJETS) $(EXE) diff --git a/cpp/includes/Example.hpp b/cpp/includes/Example.hpp new file mode 100644 index 0000000..a2a440f --- /dev/null +++ b/cpp/includes/Example.hpp @@ -0,0 +1,10 @@ +#ifndef PROJECT_EXAMPLE_HPP +#define PROJECT_EXAMPLE_HPP 1 + +#include + +struct Example { + Example(); +}; + +#endif diff --git a/cpp/src/Example.cpp b/cpp/src/Example.cpp new file mode 100644 index 0000000..c89e244 --- /dev/null +++ b/cpp/src/Example.cpp @@ -0,0 +1,3 @@ +#include "../includes/Example.hpp" + +Example::Example() { std::cout << "Hello, world!\n"; } diff --git a/cpp/src/main.cpp b/cpp/src/main.cpp new file mode 100644 index 0000000..7674b0f --- /dev/null +++ b/cpp/src/main.cpp @@ -0,0 +1,7 @@ +#include "../includes/Example.hpp" + +int main(int argc, char const *argv[]) { + Example(); + + return 0; +}