This gist is based on my personnal experience, I struggle a lot with this, and each step in every tutorial I read caused me troubles, so I decided to write this gist.
Links :
trait Animal { | |
fn speak(&self); | |
} | |
struct Dog; | |
impl Animal for Dog { | |
fn speak(&self) { | |
println!("Woof"); | |
} |
#ifndef RESULT_HPP | |
#define RESULT_HPP | |
namespace ut { | |
template<typename T, typename E> | |
union result_data { | |
T data_ok; | |
E data_err; | |
}; |
// Shamelessly copied from http://rachid.koucha.free.fr/tech_corner/pty_pdip.html | |
#define _XOPEN_SOURCE 600 | |
#include <stdlib.h> | |
#include <fcntl.h> | |
#include <errno.h> | |
#include <unistd.h> | |
#include <stdio.h> | |
#define __USE_BSD | |
#include <termios.h> |
#include <iostream> | |
#include <vector> | |
#include <algorithm> | |
#include <numeric> | |
template<typename T> | |
class MultidimArray { | |
public: | |
MultidimArray(std::initializer_list<std::size_t> sizes) : sizes{sizes}, data( | |
std::accumulate(std::begin(sizes), std::end(sizes), static_cast<std::size_t>(1), [](std::size_t i, std::size_t j) { return i * j; }) |
#include "math/Matrix.hpp" | |
#include <fstream> | |
#include <memory> | |
#include <array> | |
#include <iostream> | |
#include <algorithm> | |
enum class BranchIndex { | |
TopLeft = 0, | |
TopRight, |
#include <iostream> | |
#include <vector> | |
#include <algorithm> | |
namespace my { | |
template<typename T> | |
struct matrix; | |
namespace priv { |
#include <iostream> | |
#include <chrono> | |
#include <cmath> | |
int main(int argc, char *argv[]) | |
{ | |
constexpr std::size_t CONSTEXPR_SIZE = 1000000000000000000; | |
// The good way to use this program is to call it like so : | |
// ./main 1000000000000000000 | |
std::size_t DYNAMIC_SIZE = std::atoll(argv[1]); |
SOURCES = graph.cpp node.cpp | |
OBJECTS = $(SOURCES:.cpp=.o) | |
all: graph node | |
%.o: %.cpp | |
$(CXX) -std=c++14 -o $@ -c $< -Wall | |
graph: graph.o |
SOURCES = main.cpp | |
OBJECTS = $(SOURCES:.cpp=.o) | |
TARGET = main | |
LIBS = -L/opt/cling/lib \ | |
$(shell llvm-config --cxxflags --ldflags --libs all) \ | |
-lclingInterpreter -lclingUtils -lclangFrontend \ | |
-lclangSerialization -lclangParse -lclangSema -lclangAnalysis -lclangEdit \ | |
-lclangLex -lclangDriver -lclangCodeGen -lclangBasic -lclangAST \ | |
-lz -pthread -ldl -ltinfo |
This gist is based on my personnal experience, I struggle a lot with this, and each step in every tutorial I read caused me troubles, so I decided to write this gist.
Links :