Date: Thu, 8 Dec 2022 11:23:38 -0500
Has anyone proposed something like this?
---
interface sizeable {
size_t size() cost;
}
bool too_big(sizeable thing) {
return thing.size() > 100;
}
void main() {
std::cout << too_big(string("sdfkjhsdfjh")) << std::endl;
std::cout << too_big(vector<int>(1000,0)) << std::endl;
}
---
the precompiler can then generate specializations as needed, in the same
way that templates generate specializations, so the resulting code can be
as efficient as templates
the advantage is that
- it's just as efficient as templates
- it's easier to teach/understand
- avoids virtual stuff
- avoids complex inheritance
- works with existing libs
- should result in much better error messages than templates
Received on 2022-12-08 16:23:51
