[PATCH] D32696: More detailed docs for UsingShadowDecl

Kim Gräsman via cfe-commits cfe-commits at lists.llvm.org
Sat May 6 07:49:54 PDT 2017


Ping! Any takers?

Thanks,
- Kim

On Mon, May 1, 2017 at 10:27 AM, Kim Gräsman via Phabricator
<reviews at reviews.llvm.org> wrote:
> kimgr created this revision.
>
> I couldn't make sense of the docs before, so I sent a question to cfe-dev. Richard was gracious enough to fill in the blanks:
> http://lists.llvm.org/pipermail/cfe-dev/2017-April/053687.html
>
> I've tried to transfer some of his response to the Doxygen for UsingShadowDecl. Here's to hoping I captured everything correctly.
>
>
> Repository:
>   rL LLVM
>
> https://reviews.llvm.org/D32696
>
> Files:
>   include/clang/AST/DeclCXX.h
>
>
> Index: include/clang/AST/DeclCXX.h
> ===================================================================
> --- include/clang/AST/DeclCXX.h
> +++ include/clang/AST/DeclCXX.h
> @@ -2856,18 +2856,34 @@
>  };
>
>  /// \brief Represents a shadow declaration introduced into a scope by a
> -/// (resolved) using declaration.
> +/// (resolved) using declaration, whose target is made visible for name lookup.
>  ///
>  /// For example,
>  /// \code
>  /// namespace A {
> -///   void foo();
> +///   void foo(int);
> +///   void foo(double);
>  /// }
>  /// namespace B {
>  ///   using A::foo; // <- a UsingDecl
> -///                 // Also creates a UsingShadowDecl for A::foo() in B
> +///                 // Also creates UsingShadowDecls for both A::foo(int) and
> +///                 // A::foo(double) in B
>  /// }
>  /// \endcode
> +///
> +/// Derived class member declarations can hide any shadow declarations brought
> +/// in by a class-scope UsingDecl;
> +/// \code
> +/// class Base {
> +/// public:
> +///   void foo();
> +/// };
> +/// class Derived : public Base {
> +/// public:
> +///   using Base::foo; // <- a UsingDecl
> +///   void foo();      // Hides Base::foo and suppresses its UsingShadowDecl.
> +/// };
> +/// \endcode
>  class UsingShadowDecl : public NamedDecl, public Redeclarable<UsingShadowDecl> {
>    void anchor() override;
>
>
>


More information about the cfe-commits mailing list