c – 提升精神和Lex解析器问题 我一直在努力尝试(逐步)修改文档中的示例代码,但没有太大的不同,我没有得到我期望的行为.具体来说,“if”语句在(我的意图是)它应该传递时失败(有一个“else”但是在调试期间删除了部分解析器).赋值语句工作正常.我有一个“while”语句,它与“if”语句有同样的问题,所以我相信如果我能得到帮助来弄清楚为什么一个不工作它应该很容易让另一个去.它必须是一种微妙的,因为这几乎是逐字逐句的,其中一个例
C模板歧义 我和朋友正在讨论C模板.他问我应该做什么:main中的最后一行有两个合理的解析.‘b’是模板参数还是b>模板参数?虽然编译这个很简单,看看我们得到了什么,但我们想知道是什么解决了歧义?解决方法AFAIK将被编译为新的A>d.这是解析它的唯一合理方法恕我直言.如果解析器在正常情况下不能假设>结束模板参数,这会导致更加模糊.如果你想要另一种方式,你应该写:
memcpy和指针 我很困惑如何读取使用memcpy在数组中复制的指针.以下是我尝试过的,但不行.基本上,我已经分配了内存块,我正在复制类似于数组时尚的指针,但在重试期间它不工作.虽然这适用于基本数据类型我想在元素块中存储任何东西,它可以是整数或指针.在上面的代码中,f1_int工作正常,但f2_int_ptr不起作用.解决方法f2_int_ptr()需要成为:注意memcpy()参数的微妙变化.注意:我真的,真的,不会写这样的代码!这是难以置信的.
C 14类型列表,任何理由喜欢“自由功能”到“方法”,反之亦然? 我在C11/14中看到实现类型列表的两种可能的样式,如果有任何理由选择一种,我很好奇.第一种技术是outlinedhere,并在Boost的MPL库上进行了自己的设计.在这种风格中,您定义了使用类型列表并对其进行操作的元“自由函数”.以下是如何实现一个适用于类型而不是第一个样式的值的std::transform的元版本:第二种风格是定义元’方法'.以下是这种风格的变形风格:我在第二种风格中看到的优点是您仍然可以使用Args…
C型特征 我明白他们编码你实例化它们的类型的信息,但它们如何工作?所有的实现看起来都像是空的结构体,我必须承认我正在抓住我的头脑.这些名字似乎是描述性的,所以我可以理解它们的含义,但是什么是使用类型特征的典型场景呢?
将数组转换为指针? 有可能typedef数组吗?我有一组向量函数,它们都接受一个指向浮点数的指针,它是一个三个浮点数组.我可以使用typedeffloat*vec3_t,但是它不会让我通过简单地将它设置为等于括号中的数组来创建对象.有人可以解释为什么这样工作吗?
c – 函数模板的多个定义 >如果链接器能够巧妙地消除一组函数模板实例化,为什么不能对常规函数执行相同的操作,因为它们与实例化函数模板的情况相同?解决方法为了支持C,链接器足够聪明,可以认识到它们都是相同的功能,并且抛出除了一个.编辑:澄清:链接器不比较函数内容并确定它们是相同的.模板功能被标记为这样,并且链接器识别出它们具有相同的签名.