diff --git a/README b/README.md similarity index 59% rename from README rename to README.md index 9e3eca4..c67adee 100644 --- a/README +++ b/README.md @@ -1,5 +1,10 @@ +it works +======== +(at least i hope so...) + + Here are some (hopefully useful) c++ snippets/libs/helperthingies. Probably all are header only, with a main.cpp for testing. -Stuff probably needs some C++0x features. +Stuff probably needs some *C++0x* features. diff --git a/binary_output/README b/binary_output/README.md similarity index 62% rename from binary_output/README rename to binary_output/README.md index aab17cc..39ce7ba 100644 --- a/binary_output/README +++ b/binary_output/README.md @@ -1,6 +1,7 @@ Usage: +====== -std::cout << make_binary(1337) << make_binary("a c-style array"); + std::cout << make_binary(1337) << make_binary("a c-style array"); will output binary representations of shizzle. Make sure your type is copyable by just copying it's memory-region. diff --git a/brainfuck/README b/brainfuck/README.md similarity index 64% rename from brainfuck/README rename to brainfuck/README.md index 12a47eb..67cf42f 100644 --- a/brainfuck/README +++ b/brainfuck/README.md @@ -1,23 +1,25 @@ Usage: - +====== +```C++ brainfuck("++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>."); -The default arguments make it use std::cout and an empty string as input. +``` +The default arguments make it use `std::cout` and an empty string as input. You can also use a string as input: -brainfuck(",[.,]", "input"); + brainfuck(",[.,]", "input"); Or with a stream/container/iterator: -brainfuck(",[.,]", std::input_iterator(std::cin)); + brainfuck(",[.,]", std::input_iterator(std::cin)); You can specify the memory-units: -brainfuck("..."); + brainfuck("..."); As long as the type has certain operators. The default output is comma-seperated, except for char. You can specify an output-iterator: -brainfuck("...", "", std::back_inserter(my_vector)); + brainfuck("...", "", std::back_inserter(my_vector)); It has a lot of defaultparameters, because it's intended use was on an irc-channel. diff --git a/iterators/README b/iterators/README deleted file mode 100644 index ca909a6..0000000 --- a/iterators/README +++ /dev/null @@ -1,22 +0,0 @@ -counted -======= - -"for(auto x : counted(v)) { ... x.value ... x.index ... }" -x.value is a reference to the element in the container (so you can change it's value), x.index is what it is. -Container should have forward iterators. - - -This headers is purely a handy tool for the range-based-for-loops (ie "for(auto x : counter(v))"). Using it explicitly with iterators is not recommended! - - -There is no const version of it. Doing "for(const auto x : counted(v))" doesn't make it impossible to change x (so the element in the container can be modified). - - -Example: -for(auto x : counted(v)) { - std::cout << "v[" << x.index << "] = " << x.value << std::endl; - x.value *= 2; -} - -This will output the container v, with it's indeces. And it will multiply every value in v by 2. - diff --git a/iterators/README.md b/iterators/README.md new file mode 100644 index 0000000..061e5ff --- /dev/null +++ b/iterators/README.md @@ -0,0 +1,27 @@ +counted +======= + +```C++ +for(auto x : counted(v)) { + ... x.value ... x.index ... +} +``` +`x.value` is a reference to the element in the container (so you can change it's value), `x.index` is what it is. +Container should have forward iterators. + + +This headers is purely a handy tool for the range-based-for-loops (ie `for(auto x : counter(v))`). Using it explicitly with iterators is not recommended! + + +There is no const version of it. Doing `for(const auto x : counted(v))` doesn't make it impossible to change `x` (so the element in the container can be modified). + + +Example: +```C++ +for(auto x : counted(v)) { + std::cout << "v[" << x.index << "] = " << x.value << std::endl; + x.value *= 2; +} +``` +This will output the container `v`, with it's indeces. And it will multiply every value in `v` by 2. +