# Erik McClure

##### Why You Can't Use Prebuilt LLVM 10.0 with C++17
C++17 introduced an alignment argument to ::operator new(). It's important to note that if you allocate something using aligned new, you absolutely must deallocate it using aligned delete, or the behavior is undefined. LLVM 10.x takes advantage of this alignment parameter, if the compiler supports it. That means if you are compiling on Windows with MSVC set to C++14, __cpp_aligned_new is not defined and the extra argument isn't passed. Otherwise, if it's compiled with MSVC set to C++17, __cpp_aligned_new is defined and the extra argument is passed.

This album is a 6 year journey of musical development, as I attempted to move towards a hybrid orchestral sound and weave traditional instrumentation through digital synths.

Buy it on Bandcamp for $8, or$10 on iTunes, Amazon, and Google Play. The album is also available on Spotify, Deezer, other online radios, and can be previewed on YouTube or Newgrounds.

An AOT (ahead-of-time) compiler for WebAssembly that creates C compatible binaries, either as sandboxed plugins you can dynamically load, or as stand-alone executables that interface directly with the operating system. This allows webassembly modules to participate in C linking and the build process, either statically, dynamically, or with access to the host operating system.

A highly modular game engine built around a Entity Component System, using ordered systems and optimized component arrays. Comes with built-in support for PlaneShader, Box2D, LuaJIT, and TinyOAL, but can easily be extended to unify any set of technologies needed.

An adaptive, hybrid 2D graphics engine with automatic batch rendering. Currently only supports DirectX on Windows, but can be extended to different graphics APIs and platforms in the future. Allows 2D games to integrate simple 3D effects, and allows implementing a fully gamma-correct 2D lighting pipeline.

An anti-spam bot for Discord used by over 1000 servers spanning nearly a quarter of a million users. Primarily designed to detect and neutralize raids or trolling attempts, and to augment discord's existing moderation tools. Many users joining at the same time will trigger a lockdown to help immunize the chat against raids. Patreon supporters also have access to a chat log that allows moderators to track deleted messages.

4 years in the making, Aurora Theory is a compilation of all the songs I managed to make while attending university. The earlier songs were extensively improved, and all songs were remastered for the album's release.

Buy it on Bandcamp for $7, or$10 on iTunes, Amazon, and Google Play. The album is also available on Spotify, last.fm, other online radios, and can be previewed on YouTube.

The Black Sphere Studios Utility Library is a collection of miscellaneous utility code and algorithm implementations in modern C++17.