获取当前类的typedef

2023-11-30

我目前正在将 boost::intrusive_ptr 与我的 GUI 类一起使用。 虽然这或多或少是一个方便的问题,但是否有正确的方法来获取当前类的类型名? 我问的原因是我有一个用于定义不同指针类型的宏:

#define INTRUSIVE_PTR_TYPEDEFS(CLASSNAME) typedef boost::intrusive_ptr<CLASSNAME> Ptr; \
typedef boost::intrusive_ptr<const CLASSNAME> CPtr; \
typedef CLASSNAME* WeakPtr; \
typedef const CLASSNAME* CWeakPtr;

...

class Widget
{
public:
    INTRUSIVE_PTR_TYPEDEFS(Widget);
    ...
};

class Button : public Widget
{
public:
    INTRUSIVE_PTR_TYPEDEFS(Button);
    ...
};

拥有它会舒服得多CLASSNAME自动扣除,因此您只需将其复制并粘贴到类正文中即可。我使用的是 Visual Studio 2010 附带的编译器。

提前致谢!


不,这在 C++ 中是不可能做到的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取当前类的typedef 的相关文章

  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • FREETEXTTABLE 为什么或如何给出比其他人更高的排名值

    有一个存储过程在两个表上使用 FREETEXTTABLE 两次 然后合并结果并返回前 50 个 问题是 如果我搜索 Women of Brewster 结果会返回表 A 中排名为 143 的 Confession of an ex doof
  • jquery 一个滑块控制另一个

    如何让一个 jquery ui 滑块控制另一个 如果我滑动滑块 1 它也应该滑动滑块 2 创建滑块 1 时提供滑动 更改函数 该函数使用滑块 1 上正在更改的手柄的 ui value 并设置滑块 2 上的手柄值 根据滑块的手柄数量 您需要调
  • 强制使用 const 对象的 C++ 类

    首先让我问一个一般性问题 在我看来 C 是一种语言 其目的是提供大量功能 为程序员提供最大可能的灵活性 以他认为合适的方式做事 换句话说 它是一种灵活的语言 它允许程序员以比我见过的任何其他语言更多的方式表达自己 这是正确的吗 然后是具体的
  • static_cast(*this) 和 static_cast(*this) 之间的区别

    在下面的代码中 取自Effective C class A char operator std size t position now just calls const op return const cast
  • 如何正确调用setListAdapter

    我已经搜索了很多如何解决这个问题 但没有得到任何结果 我需要的唯一帮助是 请看一下 stackoverflow 上提出的这个问题和答案 这是来自的问题this link 我的活动不扩展 ListActivity 因此此行会引发错误 setL
  • 获取进程/线程的上下文切换次数

    出于好奇 我想知道我的程序被操作系统切换了多少次上下文 就像所有寄存器都被保存并且控制权被传递给另一个进程或线程一样 然后一段时间后一切都恢复了 我们继续 因为它从未发生过 系统是否在某个地方维护了这样的数字 或者是否存在某种黑客行为或其他
  • 将标签与其各自的字段 Swing 一起排列

    我需要将所有字段与相应的标签对齐 这是我的代码 public class Progress extends JPanel implements ActionListener public JLabel ClientIP JTextField
  • 错误渲染视图:java.lang.IllegalStateException:已为此响应调用 getOutputStream()

    我正在 JSF 和 spring 中创建一个项目 其主要目的是在浏览器中生成 PDF 文件 一切看起来都很好 也生成了 pdf 但在控制台上我遇到了这个异常 有人对此有任何想法吗 我搜索了一下 发现很多人都有这个问题 但我没有找到适合我的问
  • CSS、嵌套 div 和边距与填充

    我完全理解盒子模型 这个问题更多的是试图确定关于何时使用边距和何时使用填充的语义方法 这是一个典型的例子 首先 用简单的英语来说 情况 我们有一个容器div 里面有一个段落元素 目标 在 div 内部和段落外部之间有 12px 的空间 选项
  • C# Windows Universal 10 TopMost 窗口

    我正在开发一个 Windows 10 通用应用程序 UWP 是否可以将应用程序设置为 TopMost 始终位于顶部 喜欢WPF or Winforms 最上面的属性 Thanks Creators Update 中添加了一项名为 Compa
  • 映射两个列表[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我最近问了一个关于使用apply函数作用于两个列表 每
  • 什么 SQL 查询或视图将显示“动态列”

    我有一个数据表 我允许人们向该表添加元数据 我为他们提供了一个界面 允许他们将其视为向存储数据的表添加额外的列 但实际上我将数据存储在另一个表中 Data Table DataID Data Meta Table DataID MetaNa
  • CSS 元素恢复默认样式

    CSS 中有没有一种快速的方法来删除应用于元素的所有样式 例如 假设某种选项卡菜单 div class outer div div div div div div div div div CSS 应用 outer foo blee bar
  • 自定义地图功能 - 它是如何工作的?

    对于不清楚的主题标题 我深表歉意 我在计划中有这个函数 它是map功能 它工作得很好 但我在试图理解它时迷失了方向 define my map proc ls letrec iter lambda proc ls0 if null ls0
  • C++ 使用多个分隔符分解字符串[重复]

    这个问题在这里已经有答案了 可能的重复 C 中通过多个分隔符将字符串拆分为单词 我目前正在尝试读取一个文件 其中每行都有不同的制表符和空格 用于分隔需要插入二叉树中的关键属性 我的问题是 如何仅使用 STL 使用多个分隔符分割一行 在一天的
  • document.elementFromPoint(x,y) 获取 iframe 内的元素

    我试图获取 html 页面中的元素 我使用 document elementFromPoint x y 来检测输入元素 当没有 iframe 时它工作正常 但在 iframe 内部 它在这段代码中不起作用 html如下 我错过了什么吗 di
  • RequireJS 未加载名为“module.js”的文件或模块

    我刚刚开始使用 RequireJS 我尝试了一个简单的代码 但一种方法有效 但另一种方法无效 文件夹 script 有 main js module js require js 在 main js 中 requirejs module fu
  • 克隆控件 - C# (Winform) [重复]

    这个问题在这里已经有答案了 可能的重复 是否可以复制某个控件的所有属性 C 窗口窗体 我必须创建一些类似于设计时创建的控件的控件 创建的控件应该具有与预定义控件相同的属性 或者换句话说 我想复制一个控件 有没有一行代码可以达到这个目的 或者
  • 快速屏蔽圆段

    I m creating a simple player app There is a circle that shows a progress of playing a song 在 Swift 中绘制这个圆圈并制作蒙版的最佳方法是什么
  • 获取当前类的typedef

    我目前正在将 boost intrusive ptr 与我的 GUI 类一起使用 虽然这或多或少是一个方便的问题 但是否有正确的方法来获取当前类的类型名 我问的原因是我有一个用于定义不同指针类型的宏 define INTRUSIVE PTR