小编Aft*_*ock的帖子

为什么我的正则表达式不适用于Perl的Switch模块?

我想使用switch语句.我很快遇到了困难.看起来我不走运.我决定使用if else样式的开关instread.

我想知道为什么这不起作用.你呢?看起来正则表达式上的/ gc标志存在问题.

use Switch;
while ( pos($file) < length($file) ) {
   switch ($file)
   {

   case  (/\G\s*object\s+(\w+)\s*\:\s*(\w+)/gc)  {
   }
   }
   last if ( $oldpos == pos($file) );
   $oldpos = pos($file);
 } 
Run Code Online (Sandbox Code Playgroud)

有人建议像case(m!\ G\s object\s +(\ w +)\ s:\ s*(\ w +)!gc)这样的东西可以工作.它不是.

perl switch-statement

2
推荐指数
3
解决办法
7238
查看次数

为什么这个boost :: variant示例不起作用?

我开始了解boost :: variant.我认为这个例子应该有效.

#include <boost/fusion/sequence.hpp>
#include <boost/fusion/include/sequence.hpp>

#include <boost/variant/variant.hpp>
#include <string>
#include <vector>
#include <iostream>
#include <boost/variant/get.hpp>
boost::variant< bool,long,double,std::string,
std::vector<boost::variant<bool> > > v4;
void main()
{

    std::vector<boost::variant<bool> > av (1);
    v4= av;
    try
    {
    bool b=
    boost::get<bool> (v4[0]); // <--- this is line 20
    std::cout << b;


    }
    catch (boost::bad_get v)
    {
    std::cout << "bad get" <<std::endl; 
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:

d:\ m\upp\boosttest\main.cpp(20):错误C2676:二进制'[':'boost :: variant'不会定义此运算符或转换为预定义运算符可接受的类型[T0_ = bool,T1 = long,T2 = double,T3 = std :: string,T4 = std :: vector>]

c++ boost

2
推荐指数
1
解决办法
5181
查看次数

mysql源码,如何查找行号错误?

在mysql中,我发出了源mysource.sql
错误1064(42000):你的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以便在第1行''附近使用正确的语法.
有没有办法获得错误的确切位置?第1行真的是第1行吗?

文件很大.你可以给-1但我真的在寻找一个有用的设置或工具.

mysql

2
推荐指数
1
解决办法
3924
查看次数

How can I add an extra switch in Leksah?

I would like to add an extra switch "-XDeriveDataTypeable" to the compiler.

Otherwise, I would like to able to compile Typeable.

Where can i do that in Leksah?

haskell leksah

2
推荐指数
1
解决办法
66
查看次数

如何在Windows上的多个处理器上执行线程?

我在Windows(Windows 7,XP和Vista)上.如果我创建一个多线程程序,是否会在所有可用内核上执行线程?它是自动的吗?有保证吗?

例如,如果我有四个线程和四个处理器,那么线程是否会在每个处理器/核心上执行一次?

windows multithreading execution

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

离开c ++函数时程序崩溃了......你觉得它是什么?

我有一个c ++代码,我用MSC9来编译它.它会随机崩溃.例如,如果从Perl使用``调用它会崩溃,但是当它从命令行或从Ultimate ++调用时它不会崩溃.

我的意思是从perl调用它,例如. f.exe arg1 arg2 arg3

堆栈跟踪显示不多.逐行跟踪程序证明程序在返回时失败了......

所以就是这样

int funcname()
{
    return 0; <-- crashing after that...
}
Run Code Online (Sandbox Code Playgroud)

我猜堆栈已损坏,堆栈解除后,它崩溃了..

什么可以导致它?该程序使用pcre,stl和迭代器.迭代器可以打破堆栈吗?你怎么会遇到这样的错误?

它可以是编译器错误吗?

注意:调试版本不会崩溃,只会发布版本...

这个错误似乎与这个pvector类有关.

我有一个类似于这样的结构:

struct complexstr
{
 pvector<int> v;
 string v2;
 hash_map<string> hm;
 vector<string> vs; // similar
 int i;
};
Run Code Online (Sandbox Code Playgroud)

它似乎失败了,因为这一行:

complexstr s1;
complexstr s2;

s2=s1; // it seems to fail here, if this is not there... there is no error.
Run Code Online (Sandbox Code Playgroud)

我认为问题出在下面的类... std :: copy在pvector operator =(const pvector&pv)中是正确的,对吧?

pvector是一个perl兼容的向量...它的索引可以大于向量的分配大小.

Update1:​​我收到了有关作业泄漏的建议.我改变了作业......现在看起来是这样的:

 pvector& operator=(const pvector &pv)
  {
    delete [] m_rgArray; …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction stack-unwinding

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

关于可能的设计模式的问题

我脑子里有这样的设计....我的目标是重复使用包含一些功能而没有某些功能的程序.文献中称之为什么?更多信息:有事件..事件导致调用function1()或function2()...

功能具有在事件发生时调用的功能.特征可能会影响事件中调用的函数.功能可能会影响对多个事件执行的操作.

所以它看起来可能是观察者模式+ hasa关系......

class feature1
{
void feature1functionx();
void feature1functiony();
}

class feature2
{
void feature2functionw();
void feature2functionz();

}

class program: feature1, feature2
{
 vector<string> data;
void function1()
{
 feature2functionw();
}
void function2()
{
 feature1functiony();
 feature2functionz();
}
void execute()
{
  function1();
  function2();
}

}
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns

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

您是否知道C++中基于正则表达式的解析器可用于解析流?

我想在运行时指定正则表达式,而不是编译时.这就是为什么pcre掉了.您是否知道C/c ++正则表达式库可以解析流并且可以识别相对复杂的正则表达式,例如.+?

谢谢.

c++ regex

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

如何在Template Toolkit中转义单引号?

我正在转换模板工具包文件,例如Pieces成为[% l('Pieces') %].

我遇到了一个问题.什么是正确的转换'Title'?这不正确:[% l(''Title'') %]

总之,如何逃避'

perl template-toolkit

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

两倍,C++的新功能?

我发现这在Microsoft Visual C++ 2010中编译.

void main()
{
    int i=9;
    while (i>4)
    {
        i--; 
    }
    while (i>6);
}
Run Code Online (Sandbox Code Playgroud)

可能不会......第二次似乎没有效果

c++ visual-studio-2010

1
推荐指数
3
解决办法
289
查看次数