Skip to content

Instantly share code, notes, and snippets.

@maxtruxa
maxtruxa / type_name.hpp
Created December 16, 2022 18:51
Get the pretty typename of any C++ type at compile time. Demo: https://godbolt.org/z/vsaKsecW6
#include <string_view>
template <typename T>
#if __cpp_consteval
consteval
#else
constexpr
#endif
auto type_name() {
#ifdef __clang__
@maxtruxa
maxtruxa / tmux-cheat-sheet.md
Last active December 11, 2023 13:06
tmux cheat sheet
@maxtruxa
maxtruxa / index.html
Created August 24, 2016 09:15
sch-sz.de
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Rezepte C&amp;C</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<style>
.no-padding {
@maxtruxa
maxtruxa / Makefile
Last active August 31, 2023 14:56
Generic makefile for C/C++ with automatic dependency generation, support for deep source file hierarchies and custom intermediate directories.
# output binary
BIN := test
# source files
SRCS := \
test.cpp
# files included in the tarball generated by 'make dist' (e.g. add LICENSE file)
DISTFILES := $(BIN)
#include "perlin_noise.hpp"
#include <numeric>
#include <random>
namespace detail {
namespace perlin_noise {
double fade(double t)
{
return t * t * t * (t * (t * 6 - 15) + 10);
#include "StdAfx.h"
#include <cmath>
bresenham_line::bresenham_line()
: _x{}, _y{}, _error{}, _first_iteration{} { }
void bresenham_line::initialize(point_t const& start, point_t const& end)
{
this->initialize(start.X, start.Y, end.X, end.Y);
}
@maxtruxa
maxtruxa / broken_vcxx.cpp
Last active August 29, 2015 14:23
VC++ bug: std::unique_ptr with std::is_same<element_type, pointer>::value == true
#include <iostream>
#include <memory>
int main() {
struct my_type {
void poke() { std::cout << "poke\n"; }
};
typedef my_type* my_type_ptr;
struct my_deleter {
template<typename TMapIterator>
class key_iterator : public TMapIterator
{
public:
typedef typename TMapIterator::value_type::first_type key_type;
key_iterator() : TMapIterator() { }
key_iterator(TMapIterator iter) : TMapIterator(iter) { }
key_type* operator->()

Example Paths

Examples below use the following paths:

Windows Posix
C:\Foo\Bar\Baz.xyz /foo/bar/baz.xyz

Path Decomposition

@maxtruxa
maxtruxa / Antonyms.md
Last active April 3, 2024 22:51
A list of common terms used in programming and their respective antonyms.

Antonym List

Note: The table headings (positive/negative) are not necessarily meaningful.

Positive Negative
acquire release
add remove (e.g. an item), subtract (arithmetic)
advance retreat
allocate deallocate (correct), free (common)
allow deny