I can't say you're wrong, because it's all personal preference, but I guess those issues don't bother me as much. I copy and paste the errors and manipulate the text until I understand what's going on. This is cumbersome, and I wish the compiler would simply say "this has to be const," but it's not that smart. They should be that smart, and while I see that as a compiler problem, I understand it doesn't make a difference to the programmer who has to use it.
Binary size is a problem with heavily templatized libraries if debugging information is turned on; if not, there's no problem. I make heavy use of Boost.Spirit, and I saw my binary drop from 21MB to 3.7MB when I turned debugging information off.
And I guess API is just a matter of taste, although I do find myself making short wrapper functions for types of calls I make often. (Such as for_all as a wrapper to for_each on the .begin() and .end() of a container.)
Binary size is a problem with heavily templatized libraries if debugging information is turned on; if not, there's no problem. I make heavy use of Boost.Spirit, and I saw my binary drop from 21MB to 3.7MB when I turned debugging information off.
And I guess API is just a matter of taste, although I do find myself making short wrapper functions for types of calls I make often. (Such as for_all as a wrapper to for_each on the .begin() and .end() of a container.)