Skip to content

Instantly share code, notes, and snippets.

@Fiona-J-W
Fiona-J-W / fix.diff
Created January 23, 2016 20:54
compilation fix for GCC
diff --git a/2D-cmd-dungeoncrawler/Dungeon.cpp b/2D-cmd-dungeoncrawler/Dungeon.cpp
index 21e476f..fa155d3 100644
--- a/2D-cmd-dungeoncrawler/Dungeon.cpp
+++ b/2D-cmd-dungeoncrawler/Dungeon.cpp
@@ -295,7 +295,7 @@ void Dungeon::HandleEvents( GameStatus& status )
}
void Dungeon::RemoveDeadCharacters( GameStatus& status, bool safe )
{
- auto& it = _monsters.begin( );
+ auto it = _monsters.begin( );
@Fiona-J-W
Fiona-J-W / main.cpp
Created August 3, 2015 18:33
bind_first
#include <iostream>
#include <utility>
#define RESOLVE_OVERLOAD(...) \
[](auto&&...args)->decltype(auto){return __VA_ARGS__(std::forward<decltype(args)>(args)...);}
template<typename Fun, typename Arg>
auto bind_first(Fun f, Arg&& arg1) {
return [arg1 = std::forward<Arg>(arg1), f](auto&&... args) -> decltype(auto){
return f(arg1, std::forward<decltype(args)>(args)...);
@Fiona-J-W
Fiona-J-W / reduce.cpp
Last active August 29, 2015 14:26
meta-reduce
#include <iostream>
#include <type_traits>
template<template<class, class> class Fun, class Head, class... Tail>
struct reduce: Fun<Head, reduce<Fun, Tail...>> {};
template<template<class, class> class Fun, class Head>
struct reduce<Fun, Head>: Head{};
@Fiona-J-W
Fiona-J-W / main.cpp
Created July 19, 2015 14:42
combining ctor
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
struct foo {
foo(int i): i{i} {}
int i = 0;
@Fiona-J-W
Fiona-J-W / main.cpp
Created July 15, 2015 00:11
Template-insanity
#include <iostream>
#include <type_traits>
template<int Value> using integer = std::integral_constant<int, Value>;
template<typename T> struct require_integer{};
template<int Value> struct require_integer<integer<Value>>{using type=void;};
#define REQUIRE_INTEGER(Arg) typename=typename require_integer<Arg>::type
@Fiona-J-W
Fiona-J-W / main.cpp
Last active December 5, 2018 05:18
loggers-mock
#include <fstream>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
enum class loglevel {
debug, note, warn, error
};
/*
* Random-Number Utilities (randutil)
* Addresses common issues with C++11 random number generation.
* Makes good seeding easier, and makes using RNGs easy while retaining
* all the power.
*
* The MIT License (MIT)
*
* Copyright (c) 2015 Melissa E. O'Neill
*
@Fiona-J-W
Fiona-J-W / resolve.hpp
Last active August 29, 2015 14:18
Resolving overloaded functions as described here: http://florianjw.de/en/passing_overloaded_functions.html
/**
* Resolves overloaded functions when passing them to
* function-templates.
*
* Example:
* std::transform(vec1.begin(), vec1.end(), vec2.begin(), std::back_inserter(vec3),
* std::max); // ERROR: cannot infer template-argument
*
* std::transform(vec1.begin(), vec1.end(), vec2.begin(), std::back_inserter(vec3),
* UTIL_RESOLVE(std::max)); // Works.
@Fiona-J-W
Fiona-J-W / main.cpp
Created March 24, 2015 02:07
Calling function based on user-input
#include <algorithm>
#include <string>
#include <stdexcept>
#include <vector>
#include <iostream>
#include <cmath>
#include <unordered_map>
#include <functional>
#include <iterator>
@Fiona-J-W
Fiona-J-W / config
Created March 4, 2015 17:52
i3-config
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!