在 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/