title: std::vector needs to have dll-interface to be used by clients of class 'X<T> warning
body: <p>I'm trying to make my library exportable as a DLL but I'm getting a lot of these warnings for one specific class that uses std::vector:</p>
  
  <pre><code>template &lt;typename T&gt;
  class AGUI_CORE_DECLSPEC AguiEvent {
      typedef void (*AguiCallbackFptr)(T arg, AguiWidget* sender);
  std::vector&lt;AguiCallbackFptr&gt; events;
  public:
      void call(AguiWidget* sender, T arg) const;
      void addHandler(AguiCallbackFptr proc);
      void removeHandler(AguiCallbackFptr proc);
      void removeHandler();
      AguiEvent();
  };
  </code></pre>
  
  <p>I get warnings like these:</p>
  
  <blockquote>
    <p>Warning   57  warning C4251:
    'AguiEvent::events' : class
    'std::vector&lt;_Ty>' needs to have
    dll-interface to be used by clients of
    class 'AguiEvent'</p>
  </blockquote>
  
  <p>I tried to find how to do this properly but MSDN's documentation is very Windows Only, and I need this to be cross platform so that it only does MS specific stuff when AGUI_CORE_DECLSPEC is in fact defined.</p>
  
  <p>What should I do to get rid of these warnings?</p>
  
  <p>Thanks</p>