Comments (4)
The tool currently works on a per-file basis. The main reason for this is to accurately detect the existence of docs that shouldn't be around anymore (because an API was either moved or deleted.)
If you were to compile a program, b.hpp
requires a.hpp
be included in order to pass compilation. Since hyde
is a compiler, this requirement still holds here.
A couple fixes could address the situation. hyde
could be improved to better handle multi-file situations like this. You could also modify b.hpp
to properly include its dependencies. Given that the latter has to happen in order for b.hpp
to compile as a bona fide program, I'd try that route first.
from hyde.
b.hpp
is an implementation detail. It should never be included on its own. I suppose adding #include "a.hpp"
to it is harmless, but redundant.
To me this is a bug in hyde
. It's a pretty common practice in header-only libraries to split definition and implementation. This is admittedly a somewhat extreme case of that, but it's valid C++. It seems hyde
should support it.
As for deleted API, shouldn't it be the other way around? Shouldn't hyde
ingest everything in the library and based on that decide whether something has been removed. If a class is simply moved to a different file, the documentation shouldn't change (or be lost).
from hyde.
In the PImpl idiom, you want the PImpl to be hidden. As such, B
should not be documented (except as an opaque struct/class). If you want your user to actually use B
, then make its declaration visible as @fosterbrereton says, it's no more PImpl. Usually, in such idiom, you'll define B
in a CPP file (not a header file), since no-one should be able to use/instantiate it except A
.
from hyde.
I'm not sure what PImpl idiom has to do with anything, but I'm sure that a documentation tool should not dictate how a user is to organize their code. That would be the proverbial tail wagging the dog.
I very much hope this issue gets fixed somehow. I think hyde's out-of-source design is brilliant, and I'd love to use, but with the current per-file processing, I simply can't.
from hyde.
Related Issues (20)
- Remove dependencie on Xcode HOT 9
- Documentation: No`--with-static-lib` option form yaml-cpp
- Templates: no baseurl support HOT 1
- Command Line Options - relative paths inconsistent HOT 2
- Not finding path for standard library
- Allow specifying substitution characters HOT 1
- error: control reaches end of non-void function [-Werror=return-type] HOT 1
- Switch to more inclusive language HOT 1
- Incorrect Directory Titles HOT 1
- Make Complete How-to from Running Hyde, Writing Documentation to Serving in Jekyll HOT 2
- -hyde-json project? HOT 2
- "title" should be scalar, not editable scalar HOT 1
- Set tested_by to __OPTIONAL__ by default for anything thatβs compiler-generated.
- use hyde as a clang-doc generator HOT 1
- Building fails on Ubuntu 20.04
- Empty enums generate error
- `--infer-owner` with `git blame`
- Hyde update should reflect unknown tags in the YAML/JSON HOT 1
- Alter project so builds fail faster
- Improve version information output
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyde.