Comments (6)
Hello. This seems like something suitable for someone new to this repo. I'd be happy to take this on as a stepping stone. :) Want to assign it to me?
from dbg-macro.
Sure, sounds great!
from dbg-macro.
@sharkdp It seems to be basically impossible to have array initialisation AND multiple arguments (#2 ).
Because the preprocessor just sees the commas as new arguments we can't have this work with more than one argument.
What does work :
std::vector<int> arr = {1,0}; dbg(arr);
dbg((std::vector<int>{0,1}));
(Though it does print the extra brackets)
Simply because this uses macros I don't think if we can get around this. But using templates more limits the ability to return multiple arguments like my implementation can.
Seeing as it is still possible to do these do you think is it worth the sacrifice?
Another alternate is to simply make a seperate dbg_arr
macro.
from dbg-macro.
@sharkdp It seems to be basically impossible to have array initialisation AND multiple arguments (#2 ).
Because the preprocessor just sees the commas as new arguments we can't have this work with more than one argument.
I think you are right. There is a similar limitation in gtest
(see e.g. https://stackoverflow.com/q/44459921/704831, google/googletest#634, google/googletest#219, google/googletest#733).
It's not just initializer lists, but also comma-separated template arguments (Foo<int, 10>
) or unparenthesized comma-operators within lambda functions.
Simply because this uses macros I don't think if we can get around this.
I also think so.
Seeing as it is still possible to do these do you think is it worth the sacrifice?
I believe I would rather give up multiple-argument support. I will close #2 and refer to this thread.
How do we proceed with this PR? Do you think that we should still implement the empty-argument macro call?
from dbg-macro.
@sharkdp #67 can be pulled. The empty calls have no issue with any commas.
Sad that comma seperated args has fallen away. At least we can have these.
Though at the current moment seems like the tests don't like my most recent commit. I'm not used to Appveyor, perhaps you can enlighten me on what's wrong. My only thought is that since it's a windows enviroment it does not like the (, ##__VA_ARGS__)
from dbg-macro.
Closing for now, as we now support multiple arguments (#2). Empty calls can not be supported, unfortunately.
from dbg-macro.
Related Issues (20)
- Windows Supported? HOT 14
- Broken output of containers HOT 6
- How about output "{?}" string for unknown types instead of failing with static assert? HOT 2
- Allow specifying the output stream HOT 9
- Is support it for android ? HOT 2
- Is it possible to allow variadic template expansion? HOT 8
- VS2015:error C2912 HOT 5
- debug print on some condition HOT 3
- use in Qt HOT 1
- Add output level HOT 2
- `Type does not support the << ostream operator` on custom type HOT 10
- multithread support HOT 1
- Support always on colors HOT 2
- Nested dbg(...) expansion as not expected HOT 2
- How to force print the full content, not the one with ellipsis HOT 3
- Support for container adapters HOT 1
- Fails with Eigen matrices HOT 7
- Suggest /usr/local/include instead of /usr/include HOT 3
- Report a compiling error with old GCC version (GCC 4.8.5) HOT 1
- Some enhancement proposals for CMake based usecases HOT 1
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 dbg-macro.