【发布时间】:2010-10-29 16:56:30
【问题描述】:
在another thread 中,我介绍了一些技术,一旦 C++11 功能(特别是用户定义的文字)可用,我们将用于 C++ 中的模型驱动开发。我刚刚修改了 GCC 4.5 甚至 4.6 的计划,它表明不支持此特定功能。
无论如何,您知道我是否有任何编译器来测试该功能以开始设计/实现算法,直到 C++11 被批准并在主流免费编译器(LLVM、GCC)中实现?
【问题讨论】:
-
我们(参见 bio)构建了一个用于再工程目的的 C++ 前端,并且是 C++0x 作为即将推出的标准,我们可能很快就会实施。虽然我了解用户定义的文字 是,但我至少承认对它们的激励用例有些困惑。然而你似乎有一个特定的用途。你能概括一下为什么用户定义的文字很有趣,特别是对于一个可能可以生成它喜欢的任何代码的代码生成器,包括用于初始化结构的任意 goo? ... 为什么一个模型驱动的家伙甚至关心?
-
Ira:好问题,你说得对。对于代码生成器来说,这个特性(几乎)用处不大,除了必须生成更多的类或不太干净的模板。 然而我们想要实现的是一个非常有效的嵌入式 DSL,用于在 C++ 中指定模型、元模型和模型转换。在元编程的帮助下,转换可以比在 Java 下使用 ATL 更有效。
-
@Ira UDLs 和 const_expr 应该可用于在编译时将字符串转换为哈希码。
标签: c++ metaprogramming c++11 user-defined-literals