<tfoot id='3uJfO'></tfoot><legend id='3uJfO'><style id='3uJfO'><dir id='3uJfO'><q id='3uJfO'></q></dir></style></legend>
  • <small id='3uJfO'></small><noframes id='3uJfO'>

      • <bdo id='3uJfO'></bdo><ul id='3uJfO'></ul>

      <i id='3uJfO'><tr id='3uJfO'><dt id='3uJfO'><q id='3uJfO'><span id='3uJfO'><b id='3uJfO'><form id='3uJfO'><ins id='3uJfO'></ins><ul id='3uJfO'></ul><sub id='3uJfO'></sub></form><legend id='3uJfO'></legend><bdo id='3uJfO'><pre id='3uJfO'><center id='3uJfO'></center></pre></bdo></b><th id='3uJfO'></th></span></q></dt></tr></i><div id='3uJfO'><tfoot id='3uJfO'></tfoot><dl id='3uJfO'><fieldset id='3uJfO'></fieldset></dl></div>

        如何在类声明之外声明模板函数

        How do I declare template function outside the class declaration(如何在类声明之外声明模板函数)
          <tfoot id='bUwbt'></tfoot>

                <tbody id='bUwbt'></tbody>

                <small id='bUwbt'></small><noframes id='bUwbt'>

                <legend id='bUwbt'><style id='bUwbt'><dir id='bUwbt'><q id='bUwbt'></q></dir></style></legend>
                  <bdo id='bUwbt'></bdo><ul id='bUwbt'></ul>
                  <i id='bUwbt'><tr id='bUwbt'><dt id='bUwbt'><q id='bUwbt'><span id='bUwbt'><b id='bUwbt'><form id='bUwbt'><ins id='bUwbt'></ins><ul id='bUwbt'></ul><sub id='bUwbt'></sub></form><legend id='bUwbt'></legend><bdo id='bUwbt'><pre id='bUwbt'><center id='bUwbt'></center></pre></bdo></b><th id='bUwbt'></th></span></q></dt></tr></i><div id='bUwbt'><tfoot id='bUwbt'></tfoot><dl id='bUwbt'><fieldset id='bUwbt'></fieldset></dl></div>
                • 本文介绍了如何在类声明之外声明模板函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  #include <iterator>
                  #include <map> 
                  #include <vector>
                  
                  template <class T1, class T2>
                  class A
                  {
                  public:
                  
                      typedef typename std::vector<std::pair<T1,T2> >::iterator iterator;
                  
                      std::pair<iterator, bool > foo()
                      {
                          iterator aIter;
                          return std::pair<std::vector<std::pair<T1,T2> >::iterator, bool >(aIter ,false);
                      }
                  };
                  

                  上面的代码对我来说很好用.但我想将函数的定义移到类声明之外.我试过了.

                  The above code works fine for me. But I want to move the definition of the function outside the the class declaration. I tried this.

                  template <class T1, class T2>
                  class A
                  {
                  public:
                  
                      typedef typename std::vector<std::pair<T1,T2> >::iterator iterator;
                  
                      std::pair<iterator, bool > foo();
                  };
                  
                  template <class T1, class T2>
                  std::pair<std::vector<std::pair<T1,T2> >::iterator, bool > A<T1, T2>::foo()
                  {
                      iterator aIter;
                      return std::pair<std::vector<std::pair<T1,T2> >::iterator, bool >(aIter ,false);
                  }
                  

                  但它没有编译.知道如何做到这一点吗?

                  But it is not compiling. Any Idea how to do this?

                  推荐答案

                  您再次缺少返回值中的类型名称.函数应该是:

                  You are again missing the typename in the return value. The function should be:

                  template <class T1, class T2>
                  std::pair<typename std::vector<std::pair<T1,T2> >::iterator, bool > A<T1, T2>::foo()
                  {
                      iterator aIter;
                      return std::pair<std::vector<std::pair<T1,T2> >::iterator, bool >(aIter ,false);
                  }
                  

                  这篇关于如何在类声明之外声明模板函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  C++ stl unordered_map implementation, reference validity(C++ stl unordered_map 实现,参考有效性)
                  C++: Is it possible to use a reference as the value in a map?(C++:是否可以使用引用作为映射中的值?)
                  Where ampersand quot;amp;quot; can be put when passing argument by reference?(其中符号“amp;通过引用传递参数时可以放置吗?)
                  Why can a non-const reference parameter be bound to a temporary object?(为什么可以将非常量引用参数绑定到临时对象?)
                  What is a dangling reference?(什么是悬空引用?)
                  C++ reference changes when push_back new element to std::vector(当 push_back 新元素到 std::vector 时,C++ 引用发生变化)

                    <small id='yyZ70'></small><noframes id='yyZ70'>

                      <bdo id='yyZ70'></bdo><ul id='yyZ70'></ul>

                            <tbody id='yyZ70'></tbody>
                          <tfoot id='yyZ70'></tfoot>

                          <legend id='yyZ70'><style id='yyZ70'><dir id='yyZ70'><q id='yyZ70'></q></dir></style></legend>
                        • <i id='yyZ70'><tr id='yyZ70'><dt id='yyZ70'><q id='yyZ70'><span id='yyZ70'><b id='yyZ70'><form id='yyZ70'><ins id='yyZ70'></ins><ul id='yyZ70'></ul><sub id='yyZ70'></sub></form><legend id='yyZ70'></legend><bdo id='yyZ70'><pre id='yyZ70'><center id='yyZ70'></center></pre></bdo></b><th id='yyZ70'></th></span></q></dt></tr></i><div id='yyZ70'><tfoot id='yyZ70'></tfoot><dl id='yyZ70'><fieldset id='yyZ70'></fieldset></dl></div>