Вперед Объявление переменных/классов в пространстве имен std

Я обычно использую предварительное объявление преимущественно, если у меня есть класс, который не требует полного определения в файле.hpp

Пример)

 //B.hpp

 namespace A_file {
   class A;
 }

 namespace B_file {

  class B {
   public:
        B();
   private:
        A *ptr_to_A;
  }
 }

 //B.cpp

 #include "A.hpp"
 using namespace A_file;

 namespace B_file {

   B(int value_) {
        *ptr_to_A = new A(value_);
   }

   int some_func() {
        ptr_to_A->some_func_in_A();
   }
 }

Я пишу такой код. Думаю, спасет в том числе и весь хпп опять. (Не стесняйтесь комментировать, если считаете, что это вредно)

Можно ли сделать то же самое для объектов/классов в пространстве имен std? Если есть способ, это нормально или у него есть побочные эффекты?

11
задан howtechstuffworks 23 April 2012 в 23:34
поделиться