小编Tho*_*mas的帖子

flex/lex中字符串文字的正则表达式

我正在尝试学习flex,并希望匹配字符串文字.我的代码目前看起来像:

"\""([^\n\"\\]*(\\[.\n])*)*"\""        {/*matches string-literal*/;}
Run Code Online (Sandbox Code Playgroud)

我一直在努力与变化一个小时左右,并不能让它按照应有的方式工作.我基本上希望匹配一个不能包含换行符的字符串文字(除非它被转义)并支持转义字符.

我可能只是写一个糟糕的正则表达式或一个与flex不兼容的表达式.请指教!

c regex lex string-literals flex-lexer

49
推荐指数
3
解决办法
8万
查看次数

C++元编程:*必须*继承抽象类的模板参数

我有一个可比较的+ hashable值的抽象类:

class Key
{
public:
  virtual bool operator ==(const Key&) const = 0;
  virtual bool operator !=(const Key&) const = 0;
  virtual u32 hashcode() const = 0;
};
Run Code Online (Sandbox Code Playgroud)

和一些具体的C类继承了这一点.

class C : public Key
{
private:
  u32 a, b;
public:
  static const C& null; // a prototype for representing a "no value" C
  // Some reasonable implementation; it's just a pair
  // ...
};
Run Code Online (Sandbox Code Playgroud)

我想实现一个模板化的HashSet类:

template<class T inherits Key, const T& proto> class HashSet
{
  //...
};
Run Code Online (Sandbox Code Playgroud)

T是存储在这些集合中的值的类型.proto应该是T的一个实例,它被用作类型T的"null"值,用于集合包含.我对C++有相当的经验,但对TMP没有特别的经验,虽然看起来像是一件令人尴尬的简单事情,我似乎无法弄清楚像我的伪代码"class …

c++ inheritance templates metaprogramming

13
推荐指数
1
解决办法
1601
查看次数

使用glTexImage2D的奇怪结果

我一直试图找出glTexImage2D工作方式,并从一些非常清晰的代码中看到一些奇怪的结果.我的代码简单地将粗略的圆圈绘制成256*256长度的无符号数组,然后将该数据发送出去以成为纹理.然而,无论我在图像创建循环中选择何种组合,显示的纹理都会变成红色和橙色的变化:

unsigned* data = new unsigned[256*256];
for (int y = 0; y < 256; ++y)
    for (int x = 0; x < 256; ++x)
        if ((x - 100)*(x - 100) + (y - 156)*(y - 156) < 75*75)
            data[256*y + x] = ((156 << 24) | (256 << 16) | (156 << 8) | (200 << 0));
        else
            data[256*y + x] = 0;  // I'd expect this to be transparent and the above to be slightly transparent and …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

5
推荐指数
1
解决办法
7846
查看次数