Здравствуйте, Chiрset, Вы писали:
C>Несколько вопросов по поводу моей компетенции и читабельности кода который я пишу
C>singleton<T>::instance() -- это вообще нормально? Т.е. это в порядке вещей что каждый вызов логгера сопровождаеться жутким синтаксическим оверхедом? К примеру, singleton<logger>::instance() << "Log" << endl;
Нет, не нормально. Нужно думать об удобстве собственной работы, краткости и выразительности кода. Логгер -- штука часто используемая, так что стоит сделать работу с ним удобной.
Например, с помощью глаголов.
enum LogType { Log }; // Это приём я называю глаголом.
template <class T>
logger & operator << (LogType,const T &x) { return singleton<logger>::instance() << x ; }
...
Log << "Log message" << endl ;
А по поводу индусов -- все индусы, просто в разной степени.