[ # C++ alternatives to C standard headers { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, { include: [ "", public, "", public ] }, # HACK: check whether this can be removed with next iwyu release. { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", private ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, # HACK: check whether this can be removed with next iwyu release. { symbol: [ "__GLIBC__", private, "", public ] }, { symbol: [ "_Noreturn", private, "", public ] }, # HACK: iwyu wrongly thinks that including is sufficient. { symbol: [ "std::stringstream", private, "", public ] }, { symbol: [ "std::istringstream", private, "", public ] }, { symbol: [ "std::ostringstream", private, "", public ] }, # HACK: iwyu suggests and each time vector[] is used. # https://github.com/include-what-you-use/include-what-you-use/issues/166 { include: [ "", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits > >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits, std::allocator > > >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits, std::allocator > > > >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits, std::allocator >, std::allocator, std::allocator > > > > >::value_type", private, "", public ] }, { symbol: [ "std::allocator_traits >::value_type", private, "", public ] }, # TODO: enable this block and remove some includes? #{ symbol: [ "std::pair", private, "", public ] }, #{ symbol: [ "std::pair", private, "", public ] }, #{ symbol: [ "std::pair", private, "", public ] }, # HACK: iwyu wrongly thinks that is needed for std::hash { symbol: [ "std::hash", private, "", public ] }, # HACK: iwyu thinks we use a libstdc++ private type { symbol: [ "__gnu_cxx::size_t", private, "", public ] }, # __decay_and_strip is used internally in the C++11 standard library. # IWYU does not classify it as internal and suggests to add . # To ignore it, we simply map it to a file that is included anyway. # Use '-Xiwyu -v7' to see the fully qualified names that need this. # TODO: Can this be simplified with an @-expression? #{ symbol: [ "@std::__decay_and_strip<.*>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip &>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip &>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip<__gnu_cxx::__normal_iterator > > &>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__decay_and_strip > *, std::vector >, std::allocator > > > > &>::__type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__success_type > >::type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::__success_type > >::type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::enable_if > >::type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::enable_if > >::type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "std::enable_if > >::type", private, "\"cmConfigure.h\"", public ] }, { symbol: [ "__gnu_cxx::__enable_if::__type", private, "\"cmConfigure.h\"", public ] }, # Wrappers for 3rd-party libraries { include: [ "@<.*curl/curlver.h>", private, "", public ] }, { include: [ "@<.*json/config.h>", private, "", public ] }, { include: [ "@<.*json/forwards.h>", private, "", public ] }, { include: [ "@<.*uv/.+\\.h>", private, "", public ] }, { include: [ "@<.*expat_external.h>", private, "", public ] }, { include: [ "@<.*zconf.h>", private, "", public ] }, { include: [ "@<.*cm_zlib_mangle.h>", private, "", public ] }, # # System symbols used by libuv { symbol: [ "ssize_t", private, "", public ] }, { symbol: [ "std::ifstream", private, "\"cmsys/FStream.hxx\"", public ] }, { symbol: [ "std::ofstream", private, "\"cmsys/FStream.hxx\"", public ] }, { symbol: [ "cmsys::ifstream", private, "\"cmsys/FStream.hxx\"", public ] }, { symbol: [ "cmsys::ofstream", private, "\"cmsys/FStream.hxx\"", public ] }, { include: [ "", public, "\"cmsys/FStream.hxx\"", public ] }, { include: [ "", public, "\"cmsys/FStream.hxx\"", public ] }, { include: [ "", public, "\"cmsys/FStream.hxx\"", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, { include: [ "", private, "", public ] }, # major and minor are used as macro arguments. Those are false matches. { symbol: [ "major", private, "\"cmVersion.h\"", public ] }, { symbol: [ "minor", private, "\"cmVersion.h\"", public ] }, { include: [ "", private, "\"cmCursesStandardIncludes.h\"", public ] }, { include: [ "\"form.h\"", private, "\"cmCursesStandardIncludes.h\"", public ] }, { include: [ "", private, "\"cmCursesStandardIncludes.h\"", public ] }, # Help IWYU understand our explicit instantiation for cmConstStack. { symbol: [ "cmConstStack::cmConstStack", private, "\"cmConstStack.h\"", public ] }, ] # vim: set ft=toml: