【发布时间】:2011-07-29 16:54:13
【问题描述】:
以下引用来自 Addison Wesley 的 C++ 模板。有人可以用简单的英语/外行术语帮助我理解它的要点吗?
因为字符串字面量是具有内部链接的对象(两个具有相同值但在不同模块中的字符串字面量是不同的对象),您也不能将它们用作模板参数:
【问题讨论】:
-
我删除了
c++-faq标签。如果您认为有必要,请随时解释您认为有必要的原因。 -
@sbi 你在跟我说话吗?如果是,那么让我告诉你,我添加的唯一标签是“模板”。
-
“因为字符串字面量是具有内部链接的对象(两个字符串字面量相同但在不同的模块中是不同的对象),你也不能将它们用作模板参数”,这是一个有缺陷的C++0x 的推理,所以你最好把它从你的脑海中拿出来,以备将来的 C++ 工作。模板参数现在可以有内部链接。您可以改为说“因为字符串文字不匹配任何允许的模板参数形式......”。
-
@GMan 它的格式不正确:它不是一个整数常量表达式,它不是模板参数,也不是指向具有链接(内部或外部)的对象或函数的指针或引用表示为
& id-expression或id-expression,它不是一个指向成员的指针,表示为& qualified-id等。 -
@Anisha:正如你所知,C++0x 是计划于今年发布的 C++ 的新版本。简单地说,他们这样做是为了让你可以使用任何指针值,只要它有一个name。字符串文字没有名称。
标签: c++ templates string-literals