Использует ли boost C ++ 11 «встроенные пространства имен»? избежать ошибок несовместимости ABI во время выполнения?

C ++ 11 имеет функцию под названием «встроенные пространства имен», которая позволяет авторам обеспечивать совместимость ABI при время ссылки без вмешательства в API. Например, эти полезные ответы от @HowardHinnant объясняют, как libc++ использует встроенные пространства имен:

Мой вопрос: использует ли boost эту функцию C ++ 11? Похоже, что некоторые разработчики Boost были мышление в конечном итоге использовать его в одной точке. Но эта нить довольно старая. Это когда-нибудь случалось? Если да, относится ли это ко всем библиотекам наддува или только к подмножеству?

8

Решение

Некоторые библиотеки начали его использовать, но не все. Например, это в Boost.Log:

//! NOTE: I've reformatted this to look cleaner.
#if !defined(BOOST_NO_CXX11_INLINE_NAMESPACES)
inline namespace BOOST_LOG_VERSION_NAMESPACE {}
[snip]
#endif
5

Другие решения


По вопросам рекламы [email protected]