Skip to content

Commit dee4ba2

Browse files
committed
Repair snippets and their CI runs
1 parent 2643299 commit dee4ba2

2 files changed

Lines changed: 13 additions & 32 deletions

File tree

code_snippets/chapter03/chapter03.sh

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,10 @@ ${GCC} -std=${STD} -Wall -Wextra -Wpedantic -Werror -O3 -m64 -fsanitize=address
7070
${GCC} -std=${STD} -Wall -Wextra -Wpedantic -Werror -O3 -m64 -fsanitize=address -fsanitize=shift -fsanitize=shift-exponent -fsanitize=shift-base -fsanitize=integer-divide-by-zero -fsanitize=null -fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fsanitize=enum ./chapter03_21-001_span.cpp -o ./bin/chapter03_21-001_span.exe
7171
${GCC} -std=${STD} -Wall -Wextra -Wpedantic -Werror -O3 -m64 -fsanitize=address -fsanitize=shift -fsanitize=shift-exponent -fsanitize=shift-base -fsanitize=integer-divide-by-zero -fsanitize=null -fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fsanitize=enum ./chapter03_22-001_mersenne_twister_19937.cpp -o ./bin/chapter03_22-001_mersenne_twister_19937.exe
7272
${GCC} -std=${STD} -Wall -Wextra -Wpedantic -Werror -O3 -m64 -fsanitize=address -fsanitize=shift -fsanitize=shift-exponent -fsanitize=shift-base -fsanitize=integer-divide-by-zero -fsanitize=null -fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fsanitize=enum ./chapter03_22-002_test_random_engines.cpp -o ./bin/chapter03_22-002_test_random_engines.exe
73+
if [[ "${GCC}" == "g++" ]]; then
7374
${GCC} -std=${STD} -Wall -Wextra -Wpedantic -Werror -O3 -m64 -fsanitize=address -fsanitize=shift -fsanitize=shift-exponent -fsanitize=shift-base -fsanitize=integer-divide-by-zero -fsanitize=null -fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fsanitize=enum ./chapter03_23-001_expected_div_int.cpp -o ./bin/chapter03_23-001_expected_div_int.exe
7475
${GCC} -std=${STD} -Wall -Wextra -Wpedantic -Werror -O3 -m64 -fsanitize=address -fsanitize=shift -fsanitize=shift-exponent -fsanitize=shift-base -fsanitize=integer-divide-by-zero -fsanitize=null -fsanitize=signed-integer-overflow -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow -fsanitize=enum ./chapter03_23-002_expected_div_integral.cpp -o ./bin/chapter03_23-002_expected_div_integral.exe
75-
76+
fi
7677

7778
if [[ "${GCC}" == "g++" ]]; then
7879
ls -la \
@@ -157,9 +158,7 @@ ls -la \
157158
./bin/chapter03_20-002_alias.exe \
158159
./bin/chapter03_21-001_span.exe \
159160
./bin/chapter03_22-001_mersenne_twister_19937.exe \
160-
./bin/chapter03_22-002_test_random_engines.exe \
161-
./bin/chapter03_23-001_expected_div_int.exe \
162-
./bin/chapter03_23-002_expected_div_integral.exe
161+
./bin/chapter03_22-002_test_random_engines.exe
163162
fi
164163

165164
result_ls=$?

code_snippets/chapter05/chapter05_06-001_template_specialization.cpp

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,47 +6,29 @@
66
//
77

88
#include <iostream>
9+
#include <string>
910

1011
// chapter05_06-001_template_specialization.cpp
1112

12-
// The original add template function.
13+
// Generic add template function.
1314
template<typename T>
14-
T add(const T& a, const T& b)
15+
auto add(T a, T b) -> T
1516
{
1617
return a + b;
1718
}
1819

19-
// Make template specializations of add() with
20-
// easy-to-detect errors for float, double
21-
// and long double.
22-
23-
template<>
24-
float add<float>(const float&, const float&)
25-
{
26-
// Explicitly create an erroneous result!
27-
return 0.0F;
28-
}
29-
20+
// Specialize add() for the type int.
3021
template<>
31-
double add<double>(const double&, const double&)
22+
auto add<int>(int a, int b) noexcept -> int
3223
{
33-
// Explicitly create an erroneous result!
34-
return 0.0;
24+
return a + b;
3525
}
3626

37-
template<>
38-
long double add<long double>(const long double&,
39-
const long double&)
27+
auto main() -> int
4028
{
41-
// Explicitly create an erroneous result!
42-
return 0.0L;
43-
}
29+
// Add with generic template to get result "abcxyz".
30+
std::cout << add(std::string("abc"), std::string("xyz")) << std::endl;
4431

45-
int main()
46-
{
47-
// 3
32+
// Add with specialized template to get result 3.
4833
std::cout << add(1, 2) << std::endl;
49-
50-
// 0
51-
std::cout << add(1.0F, 2.0F) << std::endl;
5234
}

0 commit comments

Comments
 (0)