Skip to content

Instantly share code, notes, and snippets.

View altalk23's full-sized avatar
๐Ÿ’–
:3

alk altalk23

๐Ÿ’–
:3
View GitHub Profile
LgjOZpyksboblY1etczvNOY4MtB7u7g77qhG8JnifFGpVao0qZ7USTZIil69BjGIXRKuxZ2UrwL7gFaxe31YzoisGpFKwu4/zPAlc4oWptcNJSph0+Msnoi3W8x2i2EDvg6Z412h2+0ROeox9KrIcbebNml8u+0c0/6Hc1QNV2jt2p3m+NzOzn45B3xwVETjDVnQmn4l5dsm1WgEKC3ANYWJsnrxXfE8snnpQfMKlaOl5F23rKTQZzSzvh9tDLun+0s4BRh+3NPXogP/qGj6tvnzS5H+zQyi6gD780N6gKUSLtFDwvMxbMN5FHBpcclx54AiauOvtnRhd/Dxo5nJTMdWQ0pbLrTqcsMSNP9cnXxhUlGk8w3YVzSmXcyUSqg/238XjvNZIeW6KJyv6rhiuK6QBpq+3iiAv8ruTLCqm0DyKLiyxw8GGSOnQSLPnp+pvTEU2Qozxwhvk+VHIJg43aa9UT2zncZm2VM6NDGaGYSPa305xMJCv4A6Caee9/p7KJirYby3nSLMtq9r01dznQcBIminD572xIP1zrm3ezmYya7mATKXeTaeY2b6m3rmvqYCIFaJ6aZIgUKqBZP1MUhiiKQt4lC4GkLGIRATO/BmITul6Y1Dhg63O4BAe3Y6QugSeqZzAnUtDD0MBHQ5K0zhdcM+8kLoG1Xuw7TCTS2uUAtOqvaf3z9k7QuInUaZyc8CEOU0aHQx8oyLg5yMkEIL8pnimalVIO0BW3scTEK3fFzSM8zSS/jqZc9eQqhGX0otnhYGhM0bCvUrTGczg3C/M/KA0+tpbdxY6gIfZyEA2UWy4tbJ1nyCzU7LDdsM1dW/4/Yj0O7akmUtt9NKCjyKNQHBj0K2UHk2opbBtP6/pF2D+KSKgq6hwRDYkiMShOw5PFMj1R7HibXrmdHM0p1CpM5eiwa5t4qEdoAleUflFHHpyNnxvRC2YUXWxQvy2rmyYP/da6s65F9WTLbDUxYigj9FoVyDRl6n+jNNwM76wXvzQPuthSJRd4cs+lcZ
@altalk23
altalk23 / typeinfo_cast_itanium.cpp
Last active June 19, 2022 00:56
typeinfo cast for multiple inheritance using typeid name comparison
#include <type_traits>
#include <typeinfo>
#include <cstring>
#if __x86_64__
using uinthalf_t = uint32_t;
using inthalf_t = int32_t;
#else
using uinthalf_t = uint16_t;
using inthalf_t = int16_t;
@altalk23
altalk23 / address of virtual.cpp
Last active July 3, 2025 18:04
Getting the address of a virtual function in c++, works both in msvc x86 and clang macos x64
#include <cstdlib>
#include <stddef.h>
#include <iostream>
#define CONCAT2(x, y) x##y
#define CONCAT(x, y) CONCAT2(x, y)
#if defined(_WIN64) || defined(__x86_64__)
#define NEST1(macro, begin) \
macro(CONCAT(begin, 0)) \