我有以下代码块:
template<template<typename ...> class ProxyType_, template<typename> class AttributeExtension_>
struct DefaultAttributeProxyHelper;
template<template<typename ...> class ProxyClass_, template<typename> class AttributeExtension_>
std::shared_ptr<typename DefaultAttributeProxyHelper<ProxyClass_, AttributeExtension_>::class_t>
createProxyWithDefaultAttributeExtension(const std::string &_domain, const std::string &_instance);
我无法理解下面的陈述中class_t的含义以及该陈述最终暗示的内容
typename DefaultAttributeProxyHelper<ProxyClass_, AttributeExtension_>::class_t
答案 0 :(得分:1)
这只是用from pydataset import data
titanic = data('titanic')
命名数据类型的惯例。它来自typedef
语言,没有名称空间,因此必须使用这些约定来避免名称冲突。
答案 1 :(得分:0)
这是一个古老的C约定,用于记住名称:_t表示数据类型,_s表示结构,_e表示枚举,等等。
答案 2 :(得分:0)
五年前问过,查了commonapi代码后给出了一个简短的答案。希望它可以帮助某人: DefaultAttributeProxyHelper 在 capicxx-core-runtime 项目的 AttributeExtension.hpp 中声明。但是,它的定义是使用 commonapi-core-generator 在生成的代码中实现的。如果 capicxx-core-tools 中的 E02Attributes 示例完全执行,您会在 E02AttributesProxy.hpp 中找到 DefaultAttributeProxyHelper 定义及其 class_t 定义
template<template<typename > class _AttributeExtension>
struct DefaultAttributeProxyHelper< ::v1::commonapi::E02AttributesProxy,
_AttributeExtension> {
typedef typename ::v1::commonapi::E02AttributesProxy< ::v1::commonapi::E02AttributesExtensions::XAttributeExtension<_AttributeExtension>,
::v1::commonapi::E02AttributesExtensions::A1AttributeExtension<_AttributeExtension>
> class_t;
};