Skip to content

Instantly share code, notes, and snippets.

Avatar

Jason Turner lefticus

View GitHub Profile
View A_View_To_a_Thing.md

Background

C++17's std::string_view

We like std::string_view. It gives us type erasure and efficiency at the same time.

View get_gcc.sh
git clone git://gcc.gnu.org/git/gcc.git
mkdir gcc_build
cd gcc_build
../gcc/configure --disable-bootstrap --disable-werror --disable-multilib --enable-languages=c,c++ --prefix=/usr/local
make -j3
make install
@lefticus
lefticus / get_llvm.sh
Last active Dec 16, 2019
A script for building LLVM
View get_llvm.sh
if [ $# -gt 1 ]
then
echo "Checking out LLVM '$1' branch from svn into '`pwd`/llvm' and setting install prefix to '$2'"
echo "Press Return To Continue"
read $VAR
else
echo "Usage: $0 <branch name> <install prefix>"
exit
fi
View initialize_vector.cpp
#include <vector>
int main()
{
// initialize a vector of integers. For the purposes of this example let's assume we *need* a vector
std::vector<int> v {1, 2, 3, 4, 5, 6, 1012, 1094};
}
View convert_list_of_values_to_vector_of_strings.cpp
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
template<typename ... T>
std::vector<std::string> to_strings(const T& ... t)
{
std::stringstream ss;
return { (ss.str(""), ss << t, ss.str())... };
View value_of.cpp
#include <iostream>
#include <memory>
#include <vector>
#include <algorithm>
#include <type_traits>
template< class ... > using void_t = void;
template< class T , class = void >
struct is_dereferenceable : std::false_type
View system_config.yaml
repositories:
- "ChaiScript/ChaiScript"
@lefticus
lefticus / generator.chai
Last active Aug 29, 2015
chaiscript generator proposal
View generator.chai
// Generator class
class Generator
{
var has_value;
var value_holder;
var params;
var func;
// empty Generator - no value contained
View chaiscript_future.chai
var func = fun(){
var ret = 0;
for (var i = 0; i < 1000000; ++i) {
ret += i;
}
return ret;
}
// async takes a 0 parameter function object which is run asynchronously and
// returns a Boxed_Value (ie, any value, including void, should work)
You can’t perform that action at this time.