Skip to content

Instantly share code, notes, and snippets.

View CaseyCarter's full-sized avatar

Casey Carter CaseyCarter

View GitHub Profile
_TEXT SEGMENT
__Obj$ = 8 ; size = 4
_<_Args_0>$ = 12 ; size = 4
??$_Dispatch@V<lambda_b66b2f829216cb0e046dcbcc291e4414>@@ABV?$variant@HMV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@$00@?$_Variant_dispatcher@U?$integer_sequence@I$0A@@std@@@std@@SAX$$QAV<lambda_b66b2f829216cb0e046dcbcc291e4414>@@ABV?$variant@HMV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@1@@Z PROC ; std::_Variant_dispatcher<std::integer_sequence<unsigned int,0> >::_Dispatch<<lambda_b66b2f829216cb0e046dcbcc291e4414>,std::variant<int,float,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > const &,1>, COMDAT
jmp ?_Throw_bad_variant_access@std@@YAXXZ ; std::_Throw_bad_variant_access
??$_Dispatch@V<lambda_b66b2f829216cb0e046dcbcc291e4414>@@ABV?$variant@HMV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@std@@$00@?$_Variant_dispatcher@U?$integer_sequence@I$0A@@std@@@std@@SAX$$QAV<lambda_b66b2f829216cb0e046dcbcc291e4414>@@ABV?$variant@HMV?$basic_string@DU?$char_traits
#include <utility>
#include <experimental/coroutine>
#include <range/v3/view_facade.hpp>
#include <range/v3/view/all.hpp>
namespace ranges
{
inline namespace v3
{
struct generator : view_facade<generator>
@CaseyCarter
CaseyCarter / corangetine.cpp
Created May 30, 2017 19:43
generator type and coroutine-wrapper function for range-v3
#include <exception>
#include <utility>
#include <experimental/coroutine>
#include <meta/meta.hpp>
#include <range/v3/range_fwd.hpp>
#include <range/v3/range_traits.hpp>
#include <range/v3/view_facade.hpp>
#include <range/v3/detail/variant.hpp>
#include <range/v3/utility/concepts.hpp>
#include <range/v3/utility/swap.hpp>
@CaseyCarter
CaseyCarter / rotate_no_gcd.cpp
Last active November 18, 2020 15:17
Like rotate_gcd, but calculates the gcd by traversing the first cycle.
#include <cassert>
#include <iterator>
#include <numeric>
#include <utility>
#ifndef NDEBUG
#include <cassert>
#define EXPECT(...) assert(__VA_ARGS__)
#else
#ifdef __clang__
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\ClangC2\14.10.25903\bin\HostX64\clang.exe" -c -fdiagnostics-format=msvc -target "amd64-pc-windows-msvc" -I "C:\Users\Cacarter\Source\Repos\range-v3\include" -I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\ClangC2\14.10.25903\include" -I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24930\include" -I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.24930\atlmfc\include" -I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include" -I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt" -I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\UnitTest\include" -I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um" -I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared" -I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\winrt" -I "C:\Pro
@CaseyCarter
CaseyCarter / dump.txt
Created December 8, 2016 16:47
output from git grep -nC 12 RANGES_ASSERT (with include/range/v3/detail/config.hpp elided)
include/range/v3/iterator_range.hpp-98- public:
include/range/v3/iterator_range.hpp-99- using iterator = I;
include/range/v3/iterator_range.hpp-100- using sentinel = S;
include/range/v3/iterator_range.hpp-101- #ifndef RANGES_DOXYGEN_INVOKED
include/range/v3/iterator_range.hpp-102- using const_iterator = I; // Mostly to avoid spurious errors in Boost.Range
include/range/v3/iterator_range.hpp-103- #endif
include/range/v3/iterator_range.hpp-104-
include/range/v3/iterator_range.hpp-105- sized_iterator_range() = default;
include/range/v3/iterator_range.hpp-106- RANGES_NDEBUG_CONSTEXPR sized_iterator_range(I begin, S end, iterator_size_t<I> size)
include/range/v3/iterator_range.hpp-107- : rng_{detail::move(begin), detail::move(end)}, size_(size)
#include <experimental/ranges/concepts>
#include <experimental/ranges/functional>
#include <experimental/ranges/iterator>
namespace ranges = std::experimental::ranges;
ranges::Integral{I}
class integer_range {
I lo_ = 0;
I hi_ = 0;
#include <experimental/ranges/concepts>
#include <experimental/ranges/iterator>
#include <istream>
#include <stl2/detail/raw_ptr.hpp>
namespace ranges = std::experimental::ranges;
namespace detail {
template <ranges::Semiregular T, class charT, class traits>
@CaseyCarter
CaseyCarter / borken.cpp
Created November 19, 2015 18:28
We can't require [i,s) equals [i,t) to imply s == t
#include <experimental/ranges/algorithm>
#include <cassert>
using namespace std::experimental::ranges;
struct S {
int limit;
#if FOO
friend bool operator==(const S& a, const S& b) { return true; }
@CaseyCarter
CaseyCarter / gcc-hack.diff
Created November 19, 2015 03:39
Ranges TS iterator sentinel hack for GCC trunk
Index: gcc/cp/parser.c
===================================================================
--- gcc/cp/parser.c (revision 230588)
+++ gcc/cp/parser.c (working copy)
@@ -10963,7 +10963,7 @@
LOOKUP_ONLYCONVERTING);
end = build_decl (input_location, VAR_DECL,
- get_identifier ("__for_end"), iter_type);
+ get_identifier ("__for_end"), cv_unqualified (TREE_TYPE (end_expr))); // CMCHACK: iter_type);