2 Wrote out what "TMP" means the first time
source | link

My general opinion: if you have a choice, as is often the case, between the following three options:

  • Type out many nontrivial code structures repetitively by hand;
  • Use C++ template metaprogramming to automate code generation;
  • Use some other code generation mechanism, such as macros or some other programming language to generate C++ source files

then template metaprogramming, done properly, will likely be the most readable and maintainable of the three options. This is the argument that I would make to the team, if I were in your position. Examples with actual code would help convince them.

When you use TMPTemplate Meta-Programming(TMP) to avoid repetition, you should use it to construct well-documented, carefully tested abstractions that localize the complexity within the TMP code, making it easy to write correct client code. This is the design of the C++ standard library.

I do not think that we can judge who is right or wrong without seeing an example of the type of code you're trying to write.

My general opinion: if you have a choice, as is often the case, between the following three options:

  • Type out many nontrivial code structures repetitively by hand;
  • Use C++ template metaprogramming to automate code generation;
  • Use some other code generation mechanism, such as macros or some other programming language to generate C++ source files

then template metaprogramming, done properly, will likely be the most readable and maintainable of the three options. This is the argument that I would make to the team, if I were in your position. Examples with actual code would help convince them.

When you use TMP to avoid repetition, you should use it to construct well-documented, carefully tested abstractions that localize the complexity within the TMP code, making it easy to write correct client code. This is the design of the C++ standard library.

I do not think that we can judge who is right or wrong without seeing an example of the type of code you're trying to write.

My general opinion: if you have a choice, as is often the case, between the following three options:

  • Type out many nontrivial code structures repetitively by hand;
  • Use C++ template metaprogramming to automate code generation;
  • Use some other code generation mechanism, such as macros or some other programming language to generate C++ source files

then template metaprogramming, done properly, will likely be the most readable and maintainable of the three options. This is the argument that I would make to the team, if I were in your position. Examples with actual code would help convince them.

When you use Template Meta-Programming(TMP) to avoid repetition, you should use it to construct well-documented, carefully tested abstractions that localize the complexity within the TMP code, making it easy to write correct client code. This is the design of the C++ standard library.

I do not think that we can judge who is right or wrong without seeing an example of the type of code you're trying to write.

1
source | link

My general opinion: if you have a choice, as is often the case, between the following three options:

  • Type out many nontrivial code structures repetitively by hand;
  • Use C++ template metaprogramming to automate code generation;
  • Use some other code generation mechanism, such as macros or some other programming language to generate C++ source files

then template metaprogramming, done properly, will likely be the most readable and maintainable of the three options. This is the argument that I would make to the team, if I were in your position. Examples with actual code would help convince them.

When you use TMP to avoid repetition, you should use it to construct well-documented, carefully tested abstractions that localize the complexity within the TMP code, making it easy to write correct client code. This is the design of the C++ standard library.

I do not think that we can judge who is right or wrong without seeing an example of the type of code you're trying to write.