mirror of
https://github.com/cpp-best-practices/cppbestpractices.git
synced 2025-12-17 03:04:36 +03:00
22 lines
927 B
Markdown
22 lines
927 B
Markdown
# Considering Portability
|
|
|
|
## Know Your Types
|
|
|
|
Most portability issues that generate warnings are because we are not careful about our types. Standard library and arrays are indexed with `size_t`. Standard container sizes are reported in `size_t`. If you get the handling of `size_t` wrong, you can create subtle lurking 64-bit issues that arise only after you start to overflow the indexing of 32-bit integers. char vs unsigned char.
|
|
|
|
http://www.viva64.com/en/a/0010/
|
|
|
|
## Use The Standard Library
|
|
|
|
### `std::filesystem`
|
|
|
|
C++17 added a new `filesystem` library which provides portable filesystem access across all supporting compilers
|
|
|
|
### `std::thread`
|
|
|
|
C++11's threading capabilities should be utilized over `pthread` or `WinThreads`.
|
|
|
|
## Other Concerns
|
|
|
|
Most of the other concerns in this document ultimately come back to portability issues. [Avoid statics](07-Considering_Threadability.md#statics) is particularly of note.
|