Comments (5)
@d99kris If you want to keep your typedef, I suggest to move it into your rapidcsv namespace. That should avoid conflicts with potential typedefs in other headers.
from rapidcsv.
Thanks for checking the PR @Sven-HP!
This issue should be fixed now. Please let me know if you still encounter any issues @p0358. Thanks.
from rapidcsv.
Hi @p0358 - thanks for reporting the bug. It's an interesting problem! While checking #ifndef ssize_t
will work in this particular scenario, I believe it will not work if another header has typedef
'ed ssize_t
to something else.
Actually ssize_t
is mostly used internally in rapidcsv
and not exposed much in the public API. I'm wondering if maybe it makes sense to replace it with int64_t
to avoid the problem altogether. I'll need to do some research and get back.
from rapidcsv.
Thanks for the suggestion @Sven-HP - that is true! But I think I'm more inclined to drop the typedef and simply use a standard integer type. I'd prefer if portable apps would not need stuff like rapidcsv::ssize_t x = doc.GetColumnIdx("name");
when they do interact with an API exposing the type.
I've been thinking about which type to use, and I think regular int
will do. For CSV files with over 2 billion rows or columns it probably becomes impractical to use rapidcsv anyway (as rapidcsv keeps the entire parsed CSV in memory so the memory usage would be... quite high..). int64_t
would be a safer choice, but it has performance impact on 32-bit environments.
from rapidcsv.
I've created a PR #139 for switching ssize_t usage to int. Feel free to provide feedback on the change in the review. If there are no major concerns I will proceed to merge it next weekend probably.
from rapidcsv.
Related Issues (20)
- sign-conversion warnings HOT 3
- Make quoting character configurable HOT 2
- `pTrim` unexpectedly fails when `pSeparator` is the space character HOT 2
- [bug] Test errors occur when running `winmake.bat` on non-utf8 default encoding platform. HOT 2
- Provide imported target "rapidcsv::rapidcsv" and config files for CMake find_package HOT 4
- [bug] Cannot run `winmake.bat` directly to configure and build the project on Windows. HOT 1
- Add documentation for using package managers vcpkg/conan to fetch rapidcsv HOT 2
- Incorrect precision in default Converter.ToStr() depending on type HOT 2
- `mNumericLocale` only considers C-locale, but not C++-locale HOT 2
- Setting cell value is not working correctly with column headers offset
- Retain UTF-8 BOM on Save
- Add two SetCell methods for consistency with GetCell HOT 1
- basic_ios::clear: iostream error HOT 4
- openSUSE 15.4 / g++ v7.5.0 build warnings
- CSV files ending with a commented line without a line-break will result in the commented line as part of the final data HOT 2
- Reading empty lines not possible HOT 2
- string contains '\n' ,but not quoted HOT 4
- SetRowName didn't throw out of range when set row didn't exist HOT 1
- Bug in CSV parsing, disabling autoquotes doesn't work HOT 3
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 rapidcsv.