
A couple of weeks ago I posted in c++ moderated: It seems natural that if there is a <iosfwd> to forward declare the I/O related classes, there should be a header for the classes contained in the std namespace. In the trenches, often times I come across classes that can be simply defined in terms of references and pointers to other classes. An example is defining interfaces or "protocol classes." Granted, with a small project, using an <stdfwd> header does not provide a big advantage, but I deal with 500+ files in a framework... I believe that the rationale is so simple that I even feel lazy about explaining the benefits, but oh well: // needlessly including the definition of string (or basic_string) and vector #include <string> #include <vector> class ISeek{ public: virtual void seek_knowledge(const std::string& token) = 0; virtual void seek_advice(const std::vector<std::string>& advisers) = 0; }; // using the proposed header... #include <stdfwd> class ISeek{ public: virtual void seek_knowledge(const std::string& token) = 0; virtual void seek_advice(const std::vector<std::string>& advisers) = 0; }; Please ready your darts and fire at will. I'd like to know if there is enough support that it could fly in a proposal to the std committee. Javier jestrada at developeer dot com