Erich Keane, iCDG Software Engineer
Erich.Keane@intel.com
3 Components:
We all hate coding rules because:
Building a good set requires:
https://github.com/isocpp/CppCoreGuidelines
Ambitious:
How?
How?
// Common/Dangerous
void f(int* p, int n) {
p[7] = 9; // Sure this isn't an error?
// How about this one?
for (int i = 0; i<n; ++i) p[i]=7;
}
// Better:
void f(array_view<int> a){
a[7] = 9;// Checkable against size at compile/run time
for (int& x: a)x=7; // Perfectly fine!
}// Common/Dangerous
void f(int* p, int n);
int a[100];
f(a, 100); // OK
f(a, 1000); // Oops, disasterous typo!// Better/safer
void f(array_view<int> a);
int a[100];
// Explicit construction, length deduced
f(array_view<int>{a});
// Even shorter way to write!
f(a);
// Compile-time error!
f({a,1000});Erich.Keane@intel.com