You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An exhaustive BMP Loader, MIT-licensed, implemented for c++14 and c++20
2
+
An exhaustive BMP Loader, MIT-licensed, implemented for c++11
3
3
4
4
This BMP loader library decodes **Windows** BMP files encoded according to
5
5
BMP format versions 1 up to 5, as well as the specific *OS/2 1.x* and *OS/2
@@ -27,17 +27,13 @@ sees the number of questions asked on this topic on the Internet and the
27
27
number of BMPLoader libraries already existing, but apparently incomplete, that
28
28
can be found on *GitHub*, programmed in c++ or in other programming languages.
29
29
30
-
## c++14 and c++20 versions
31
-
Initially, two versions of the library are offerred, one responding to standard
32
-
c++14 and the other responding to standard c++20 (offering more advanced
33
-
programming concepts, e.g. *ranges* and *views* or STL extensions).
34
-
35
-
Notice: by November 2024, the c++20 version of the library is not yet released.
30
+
## c++11 version
31
+
Initially, only a c++11 version of the library code is offerred.
36
32
37
33
## Notice (1/2)
38
-
The c++14 standard version of **CppBMPLoader** does not use any c++14
39
-
specificities but only c++11 ones. It has been compiled and validated with
40
-
a c++14 compiler but should as well be compilable with a c++11 compiler.
34
+
The c++11 version of **CppBMPLoader** has been compiled with c++14 standard as provided by Visual Studio 2022. Meanwhile, it does not use any c++14
35
+
specificities but only c++11 ones. While having been compiled and validated with
36
+
a c++14 compiler it should as well be compilable with a c++11 compiler.
41
37
42
38
## Notice (2/2)
43
39
All released code has been validated. For this purpose, we used the great
@@ -52,8 +48,6 @@ ISO images of OS/2.
52
48
53
49
# Documentation
54
50
The API of **CppBMPLoader** is documented in [documentation.md](./documentation.doc).
55
-
This API is exactly the same for both the c++14 and the c++20 implementations of
56
-
the library.
57
51
58
52
Shortly speeking, this API offers a templated class BMPImage<> for the loading
59
53
of BMP images content and classes and functions to extract and load all images
@@ -72,15 +66,12 @@ For those of you who are the most motivated for deeply diving into this
72
66
library code, please notice that no implementation documentation is provided
73
67
for **CppBMPLoader**.
74
68
75
-
The design decision made for its first implementation, a.k.a. cpp-14, has been
69
+
The design decision made for its first implementation has been
76
70
to factorize as much code as possible. This was a tremendous decision when at
77
71
bugs fixing time: each bug had to be fixed in one and only one place. This was
78
-
also a very deceptive decision about the final readability of the code. So, you
79
-
should avoid to have a first look at this code. Prefer to go into the c++20
80
-
implementation of **CppBMPLoader** instead to have a far easier reading of it.
81
-
There, we've preferred to duplicate the already debugged code, to provide a
82
-
clear class for each type of object and for each format version that is
83
-
internally managed by the library.
72
+
also a very deceptive decision about the final readability of the code. It might be that a further version of libray **CppBMPLoader** will embed c++20 or even c++23 code. Should this happen, a full refactoring would then happen. Duplicating the already debugged code, to provide a
73
+
single clear class for each type of object and for each format version that is
74
+
internally managed by the library, would eventually enhance the readiness of the code. So, wait and see.
84
75
85
76
Meanwhile, experienced c++ developers should get no trouble in understanding
86
77
the directories tree structure and the code itself as well, which is
0 commit comments