<tfoot id='oASSK'></tfoot>
  • <small id='oASSK'></small><noframes id='oASSK'>

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

        <bdo id='oASSK'></bdo><ul id='oASSK'></ul>
    1. <legend id='oASSK'><style id='oASSK'><dir id='oASSK'><q id='oASSK'></q></dir></style></legend>

      1. GCC 错误:非命名空间范围内的显式特化

        时间:2023-05-24

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

          • <bdo id='JaMUr'></bdo><ul id='JaMUr'></ul>

                  <tbody id='JaMUr'></tbody>
                  <legend id='JaMUr'><style id='JaMUr'><dir id='JaMUr'><q id='JaMUr'></q></dir></style></legend>
                  <i id='JaMUr'><tr id='JaMUr'><dt id='JaMUr'><q id='JaMUr'><span id='JaMUr'><b id='JaMUr'><form id='JaMUr'><ins id='JaMUr'></ins><ul id='JaMUr'></ul><sub id='JaMUr'></sub></form><legend id='JaMUr'></legend><bdo id='JaMUr'><pre id='JaMUr'><center id='JaMUr'></center></pre></bdo></b><th id='JaMUr'></th></span></q></dt></tr></i><div id='JaMUr'><tfoot id='JaMUr'></tfoot><dl id='JaMUr'><fieldset id='JaMUr'></fieldset></dl></div>
                  <tfoot id='JaMUr'></tfoot>
                  本文介绍了GCC 错误:非命名空间范围内的显式特化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我正在尝试移植以下代码.我知道该标准不允许在非 namescape 范围内进行显式专业化,我应该使用重载,但我只是找不到在这种特殊情况下应用这种技术的方法.

                  I am trying to port the following code. I know the standard doesn't allow explicit specialization in non-namescape scope and I should use overloading, but I just can't find a way to apply this technique in this particular case.

                  class VarData
                  {
                  public:
                      template < typename T > bool IsTypeOf (int index) const
                      {
                          return IsTypeOf_f<T>::IsTypeOf(this, index); // no error...
                      }
                  
                      template <> bool IsTypeOf < int > (int index) const // error: explicit specialization in non-namespace scope 'class StateData'
                      {
                          return false;
                      }
                  
                      template <> bool IsTypeOf < double > (int index) const // error: explicit specialization in non-namespace scope 'class StateData'
                      {
                          return false;
                      }
                  };
                  

                  推荐答案

                  您只需要将成员模板的特化移到类主体之外.

                  You just have to move your specializations of the member templates outside of the class body.

                  class VarData
                  {
                  public:
                      template < typename T > bool IsTypeOf (int index) const
                      {
                          return IsTypeOf_f<T>::IsTypeOf(this, index);
                      }
                  };
                  
                  template <> bool VarData::IsTypeOf < int > (int index) const
                  {
                      return false;
                  }
                  
                  template <> bool VarData::IsTypeOf < double > (int index) const
                  {
                      return false;
                  }
                  

                  这篇关于GCC 错误:非命名空间范围内的显式特化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何防止非专业模板实例化? 下一篇:带有模板参数的模板中的默认值 (C++)

                  相关文章

                  最新文章

                  <legend id='yB9SF'><style id='yB9SF'><dir id='yB9SF'><q id='yB9SF'></q></dir></style></legend>
                  • <bdo id='yB9SF'></bdo><ul id='yB9SF'></ul>

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

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

                      <tfoot id='yB9SF'></tfoot>