Skip to content

Instantly share code, notes, and snippets.

@wilhelmtell
wilhelmtell / gist:845950
Created February 27, 2011 06:02
n_iterator
#include <iterator>
#include <iostream>
#include <vector>
#include <algorithm>
template<class I, class S>
struct n_iterator : public std::iterator_traits<I> {
n_iterator();
n_iterator(I iter, S n);

Keybase proof

I hereby claim:

  • I am wilhelmtell on github.
  • I am wilhelmtell (https://keybase.io/wilhelmtell) on keybase.
  • I have a public key whose fingerprint is 8702 6ACC 79E5 235F 11A3 837D D428 19EA D130 1F36

To claim this, I am signing this object:

I don't find this "cache end()" guideline of LLVM right: http://llvm.org/docs/CodingStandards.html#don-t-evaluate-end-every-time-through-a-loop It's a case of premature optimization, and it actually leaves room for error because the new identifier is a non-const lvalue.
try {
std::vector<int> v;
// gtfo of try, so we only catch the ctor's error
} catch (const std::bad_alloc& e) {
// ...
}
// damn it, so now v's out of scope!
#!/bin/bash
# git read eval print loop
P='git> ';
echo -e -n "$P";
while read L; do
if [ "$L" = "quit" -o "$L" = q ]; then
break;
fi;
git "$L";
namespace System {
class Exception<T> : Exception {
public Exception() { }
public Exception(string message) : base(message) { }
public Exception(string message, Exception inner)
: base(message, inner){ }
}
}
namespace App {
from_dot()
{
[ $# -gt 0 ] && local FROM="$@";
sed '/[{}]/d; s/^\s*\|\s*\[[^]]*\]\s*\|\s*;\s*$//g; s/\s/_/g; s/\s*->\s*/ /' $FROM;
}
from_dot graph.dot |tsort #|tac
#include <iostream>
using namespace std;
union ufloat {
float f;
char b[sizeof(float)];
};
int main(int argc, char* argv[])
template<typename T, size_t N>
T* end_of(T (&arr)[N])
{
return &arr[0]+N;
}
// ...
int arr[42];
std::fill(arr, end_of(arr), 25);
# polymorphism in bash ?
prepare_c() {
cp ~/c_skeleton $1
cp ~/c_makefile_skeleton $1
}
prepare_bash() {
cp ~/bash_skeleton $1
}