c++ - 我可以 typedef 模板模板参数吗?

标签 c++ templates

在 C++ 库头文件中,我们有时会看到以下内容以提高类内代码的易读性:

template<typename MyExplicitelyLongTemplateParameter>
class C
{
public:
    typedef MyExplicitelyLongTemplateParameter P;

    // Use "P" and keep your sanity.
};

我的问题是,可以对模板模板参数做同样的事情吗?

template<template<typename> typename MyExplicitelyLongTemplateParameter>
class C
{
public:
    typedef /* ??? */ P;

    // Use "P" and keep your sanity.
};

最佳答案

你不能创建 typedef,不,但你可以缩短名称:

template <template <typename> typename MyExplicitlyLongTemplateParameter>
class C
{
public:

    template <typename T>
    struct P 
    {
        typedef MyExplicitlyLongTemplateParameter<T> Type;
    };

    // Use "P<T>::Type" and keep your sanity.
};

关于c++ - 我可以 typedef 模板模板参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845950/

相关文章:

html - 移动友好模板

Java:如何将类传递给函数进行实例化

c++ - QApplication 是懒惰的(或使应用程序中的其他线程懒惰)

c++ - stringstream sgetn 在 iOS 5.1 上返回 NULL

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - 类模板与模板类 friend ,这里到底发生了什么?

c++ - 通过模板-模板参数使用枚举标记对象

c++函数代码泛化使用模板

c++ - C++中如何直接访问栈中的元素?

c++ - 如何拆分字符串并在 C++ 中得到我想要的?