私は、サードパーティのライブラリが現在存在しない機能やユーティリティを使用できる状況に陥ることがよくあります。これらのコンパニオン ユーティリティを作成する際に、それらをどの名前空間に配置するかという問題が生じます。
私は自分自身の中でサードパーティの名前空間をシャドーイングするための慣習を選びましたが、望ましくない影響が潜んでいないと完全に確信していません.
ユーティリティ ヘッダーの例:
#include <third_party/Thing.hpp>
namespace my_namespace
{
namespace third_party
{
typedef ::third_party::Thing<int,3> Thing3i
}
}
問題は、これを行うことで重大な悪影響があるかどうかです。