C++ links: Type Erasure
https://github.com/MattPD/cpplinks / C++ / Type Erasure
(draft; work in progress)
- Back to Basics: Type Erasure
- CppCon 2019; Arthur O'Dwyer
https://github.com/MattPD/cpplinks / C++ / Type Erasure
(draft; work in progress)
https://github.com/MattPD/cpplinks / Performance / Modeling
See also:
https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Modules
Formal Methods and Program Analysis in Industry
(draft)
See also: Compilers: correctness, Software Verification Literature Review (https://alastairreid.github.io/RelatedWork/papers/)
(draft; work in progress)
See also:
https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Coroutines
(draft; work in progress)
#coroutines (C++ Slack): https://cpplang.slack.com/archives/C5JS5JXT5
/* Running: | |
BNSIZE=10000; BNQUERIES=1000 | |
./find --param=size:$BNSIZE --param=queries:$BNQUERIES > | |
results.size=$BNSIZE.queries=$BNQUERIES.txt | |
./find --param=size:$BNSIZE --param=queries:$BNQUERIES --reporter=html | |
--output=results.size=$BNSIZE.queries=$BNQUERIES.html | |
*/ |
Related to discussion of | |
http://larshagencpp.github.io/blog/2016/05/01/a-cache-miss-is-not-a-cache-miss | |
at https://twitter.com/gregerlars/status/726781584481878017 | |
Three variants: | |
- Simple: cacheS | |
- Pointer: cacheP | |
- LinkedList: cacheL | |
Context -- looking at average stall durations, we can confirm that cacheL wastes considerably more instruction slots than cacheP, which wastes only somewhat more instruction slots than cacheS: |
// Boost.Hana solution | |
// issue: http://baptiste-wicht.com/posts/2015/07/simulate-static_if-with-c11c14.html | |
// docs w/ explanation: http://ldionne.com/hana/#tutorial-introspection-is_valid | |
#include <iostream> | |
#include <string> | |
#include <boost/hana.hpp> | |
auto has_pop_back = boost::hana::is_valid([](auto && obj) -> decltype(obj.pop_back()) { }); |
#include <iostream> | |
using std::cout; | |
int main() | |
{ | |
cout << "Hello! \n"; | |
return 0; | |
} |