Comments (4)
By "header-only", you mean when the user includes #include <boost/url/src.hpp>
in some source file / translation unit, right? If this is header-only, what's not header-only? If it's never header-only, do we always need BOOST_URL_NO_LIB
, even if it's
"BOOST_URL_YES_LIB
"?
I'm finding this naming convention a little confusing because <boost/url/src.hpp>
is not really header-only at all, and the documentation often refers to that mode as header-only without any quotation marks.
"Alternatively you can use the header-only configuration simply by including this header file in exactly one of your new or existing source files"
And quotation marks would also be worse than describing what things literally are without quotation marks anyway. Some libraries, like Asio, really support both modes. So even if "header-only" did always have quotation marks, it's still confusing, because it might imply the library supports "real" header-only and this "header-only" mode with quotation marks.
Maybe it would be more reasonable to just document this like any other boost library that requires linking.
from url.
MSVC has "auto-linking" which can only be turned off by defining BOOST_URL_NO_LIB. I use the term "header-only" for marketing purposes. I think the term "header-only" is still applicable, as to use the library in this mode requires only the inclusion of header files.
from url.
I use the term "header-only" for marketing purposes.
Yes. I understood that. I don't care that much about libraries being header-only but I understand why many people would care.
I think the term "header-only" is still applicable, as to use the library in this mode requires only the inclusion of header files.
I don't think I would use the term "header-only" in this case, but that's OK. That's not the real problem here.
MSVC has "auto-linking" which can only be turned off by defining BOOST_URL_NO_LIB.
The problem here is I'm confused, probably because the marketing and the technical terms are in conflict. We're asking the user to set a macro *_NO_LIB
for something that is *_YES_LIB
.
If including src.hpp
is considered header-only, I don't know what's considered not header-only. So I don't know when to tell the user not to define BOOST_URL_NO_LIB
.
from url.
you avoid defining BOOST_URL_NO_LIB
when you want to link to the lib, e.g. "libboost_url-vc142-mt-sgd-x64-1_78.lib." But if you are including src.hpp then you aren't linking to the lib you are including the sources directly, thus you must define BOOST_URL_NO_LIB
or else Boost.Config will try to activate auto-linking on MSVC.
from url.
Related Issues (20)
- Boost CMake testing procedure doesn't work for URL
- Reconfiguring with BUILD_TESTING=OFF doesn't disable tests
- `boost::urls::resolve` gives wrong result when there are more `..`s in relative reference HOT 6
- sanitize_uri moves host to path
- Slash in query param not being encoded as %2F HOT 5
- docs build tmp files HOT 4
- UB Sanitizer implicit-integer-sign-change warning in boost::urls::grammar::detail::find_if_not_pred HOT 6
- Missing coverage
- Source files should not include header guards
- coverage job is generating an empty file
- detail symbol in reference
- Missing codecov token in GHA
- Improve coverage
- When compiling the boost.url libs comes the errors HOT 3
- Exclude tests from Antora compile commands
- craypp crash compiling segments_view.cpp HOT 1
- Test libraries and executables should be declared EXCLUDE_FROM_ALL
- Fix security vulnerabilities detected in Antora docs HOT 1
- Fix urls::errc reference
- Missing StringToken exposition
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 url.