Skip to content

Instantly share code, notes, and snippets.

#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <chrono>
#include <iterator>
#include <string>
#include <vector>
#include <fstream>
#include <sstream>
#include <stdio.h>
#include <fcntl.h>
#if defined(__unix__) || defined (__CYGWIN__)
#include <unistd.h>
#else
#include <io.h>
#endif
#ifndef O_BINARY
@dodheim
dodheim / output.txt
Created December 2, 2016 12:15
Survey for VC++ regarding insert and emplace - VC++ 2017 RC
--insert lvalue no reallocation--
0
1
1
0
1
3
----
--emplace lvalue no reallocation--
0
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\ClangC2\14.10.25903\bin\HostX64\clang.exe -c -fdiagnostics-format=msvc -target "amd64-pc-windows-msvc" -I "C:\libs\range-v3\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\ClangC2\14.10.25903\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.10.24930\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.10.24930\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\VS\UnitTest\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\winrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.2\Include\um;" -g2 -gdwarf
@dodheim
dodheim / VisualCppTools.props
Last active June 29, 2017 08:32
Visual C++ prerelease tools property sheet
<!--
Updated for VS2017; Intel compiler support removed
REQUIRES CHANGES TO USER PROJECT FILE
-->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
lib/native/bin/amd64 dir needs to exist!
import just before Microsoft.Cpp.Default.props
-->
@dodheim
dodheim / challenge_294_easy.rs
Created July 26, 2017 10:25
Rust solution for /r/dailyprogrammer challenge #294 [easy]
#![feature(ascii_ctype, attr_literals, const_fn, iterator_for_each, repr_align)]
#![cfg_attr(not(debug_assertions), feature(core_intrinsics))]
#![cfg_attr(test, feature(test))]
#[macro_use]
extern crate lazy_static;
extern crate rayon;
extern crate simd;
#[cfg(test)]
@dodheim
dodheim / challenge_284_easy.cpp
Last active August 27, 2017 18:00
C++17 solution for /r/dailyprogrammer challenge #284 [easy]
#include <cstddef>
#include <cstdlib>
#include <utility>
#include <exception>
#include <stdexcept>
#include <chrono>
#include <string_view>
#include <string>
#include <unordered_map>
#include <vector>
@dodheim
dodheim / fusion_map.cpp
Created August 28, 2017 20:25
Boost.Hana fusion_map demo for /u/Bitter_Peter
#define BOOST_HANA_CONFIG_ENABLE_STRING_UDL 1
#include <type_traits>
#include <utility>
#include <optional>
#include <string_view>
#include <array>
#include <range/v3/core.hpp>
#include <range/v3/algorithm/lower_bound.hpp>
#include <boost/hana.hpp>
@dodheim
dodheim / with_mp11_rangemoves.patch
Created August 29, 2017 04:44
Boost 1.65.0 patches (including MP11 and Range move algos)
Left base folder: C:\libs\boost_1_65_0_unpatched
Right base folder: C:\libs\boost_1_65_0_dod
--- boost\algorithm\cxx14\equal.hpp 2017-08-19 09:49:39.000000000 -0700
+++ boost\algorithm\cxx14\equal.hpp 2017-08-21 15:24:58.000000000 -0700
@@ -18,12 +18,15 @@
namespace boost { namespace algorithm {
namespace detail {
template <class T1, class T2>
@dodheim
dodheim / no_mp11_rangemoves.patch
Created August 29, 2017 04:57
Boost 1.65.0 patches (excluding MP11 and Range move algos)
Left base folder: C:\libs\boost_1_65_0_unpatched
Right base folder: C:\libs\boost_1_65_0_dod
--- boost\algorithm\cxx14\equal.hpp 2017-08-19 09:49:39.000000000 -0700
+++ boost\algorithm\cxx14\equal.hpp 2017-08-21 15:24:58.000000000 -0700
@@ -18,12 +18,15 @@
namespace boost { namespace algorithm {
namespace detail {
template <class T1, class T2>