相关疑难解决方法(0)

C++模板专业化

你好!有人知道实现或模仿以下行为的方法吗? (此代码导致编译时错误).

例如,我想仅在派生类中添加特定的模板特化.

struct Base {
   template <typename T> void Method(T a) {
      T b;
   }

   template <> void Method<int>(int a) {
      float c;
   }
};

struct Derived : public Base {
   template <> void Method<float>(float a) {
      float x;
   }
};
Run Code Online (Sandbox Code Playgroud)

c++ templates specialization

3
推荐指数
1
解决办法
252
查看次数

类型特征 - 显式模板专业化。在 xcode 上失败

我正在尝试使用“现代 C++ 设计”中的类型特征,使用模板来确定类型是否具有可变大小。例如,字符串需要可变大小的存储,int 具有固定大小的存储。此代码适用于 Microsoft C++,现在我正在移植到 mac,但出现错误:

当前范围内不允许显式特化

专门化这个的正确方法是什么?

template <typename T>
class MyTypeTraits
{
    template<class U> struct VariableLengthStorageTraits
    {
        enum { result = false };
    };
    template<> struct VariableLengthStorageTraits<std::wstring>
    {
        enum { result = true };
    };

public:
    enum{ IsVariableLengthType = VariableLengthStorageTraits<T>::result };
};
Run Code Online (Sandbox Code Playgroud)

c++ templates icc

1
推荐指数
1
解决办法
4267
查看次数

标签 统计

c++ ×2

templates ×2

icc ×1

specialization ×1