Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. COThanks for your answer. Actually, the idea is _not_ having `Lib3::func3()` declared at all -- not inside `Lib3` anyway, but either, _somehow_, at `Lib1`, or at some function (or class) local scope. Let me draw your attention to the C linkage case: albeit `func2()` is _declared inside_ `Lib1`, it refers to something _outside_ `Lib1` -- I wondered if it was possible to do the same with C++-linked entities. However, by looking at the progress of the question, I feel that there is no solution to the problem at the syntax level, but only at the link level, if any (some symbol renaming or the sort).
      singulars
    2. COIn other words, you want the effect of `using`, but then *also* you want to prevent Lib1's users from using Lib3 directly? Sometimes this effect can be achieved with `#define Lib3 __Lib3_internal_to_Lib1 ; #include <Lib3.h> ; #undef Lib3`.
      singulars
    3. COIn fact I want to allow `Lib1`'s users to use `Lib3` directly, however `Lib1` itself is _independent_ from any header file from `Lib3` (and does not declare anything inside the `Lib3` namespace whatsoever). This is what happens in the C case: `Lib1` accesses the C interface, and allows anyone else to include `Lib2.h` at will (because anything `Lib1` declares, which relates to `Lib2`, is inside `Lib1`). So I need to refer to `Lib3` entities with local visibility only (either at local scope or inside the `Lib1` library namespace). Also, the `#define` trick would ensue link errors, wouldn't it?
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload