はじめに これは、OpenCV Advent Calendar 2015 16日目の記事です。関連記事は目次にまとめられています。 OpenCV のC++サポートが入ったのは2.0からで、1.0系列およびその昔はC言語がメインなサポート対象でしたが、OpenCV 3.0 からはC++がサポートされ、C言語はサポート対象外へと変わっています。 OpenCV 2.0 はまさにその過渡期で、Cインタフェースしか無い関数とか、C++インタフェースはあるけれど実体はC版のラッパー(またはその逆)とか、かなり混在していました。今でもその名残は多々存在します。 その名残の一つとして、未だ使われているCV_で始まる定数シンボルがあります。 CV_で始まる定数シンボルを、一匹残らず駆逐してやる! C時代の名残とは OpenCV では、関数内部の挙動を変化させるために、引数に定数シンボルを渡すことがあります。
![C時代の enum CV_** を駆逐したい - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/5bcc3b860da111f2ab55a39879bb9a113935627e/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9QyVFNiU5OSU4MiVFNCVCQiVBMyVFMyU4MSVBRSUyMGVudW0lMjBDVl8lMkElMkElMjAlRTMlODIlOTIlRTklQTclODYlRTklODAlOTAlRTMlODElOTclRTMlODElOUYlRTMlODElODQmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTgyNDM3NjU0NjcyOGE0OTFmZWQ1MjhiMTM4NWNmNzYx%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDB0b21vYWtpX3Rlc2hpbWEmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWNmYjE5YTc1NGFkYjNlOTRjZDMxMDc4YTlkMTVhMGU5%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3D265690b581083638eb499680c43c5540)