Skip to content →

Month: March 2018

Tripping Over the One Definition Rule

Stepping away from my series on updating the Lucena Utility Library (LUL) for a bit, I’d like to discuss a passing reference I made to the difficulty in providing header-only reference implementations for some of the newer Standard Library pieces that haven’t passed into ubiquity on our various target platforms. Specifically, I implied that avoiding One Definition Rule (ODR) violations made this impossible. I’m going to qualify that statement and describe some of the issues in detail. The One Definition Rule: a refresher In my experience, the ODR is one of the most perniciously botched requirements in all of C++.…

Comments closed