问题列表 - 第31579页

便携式C++构建系统

我正在为C++项目寻找一个易于维护的便携式构建系统.主要平台应包括Windows(Visual Studio 8+)和Linux(gcc); Cygwin可能是一个优势.我们正在考虑两种主要的可能性:CMakeBoost.Jam.SCons也可以选择,但我还没有调查过.CMake和Boost.Jam似乎具有以下特征:

CMake的:

  • (+)生成本机"makefile"(Windows解决方案,Eclipse项目)
  • (+)测试和包装的扩展
  • ( - )需要每个项目文件夹中的配置文件
  • ( - )基于一种过于冗长的特殊语言

Boost.Jam:

  • 单独构建,没有中间步骤
  • ( - )不生成本机解决方案/项目
  • (+)简洁的语言类似于经典的makefile
  • (+)直观支持多线程和静态/动态库等属性

什么是其他可能性以及经验之后的真正优势?什么构建系统可以在途中创建解决方案?

c++ portability build-process

28
推荐指数
4
解决办法
8995
查看次数

为什么要使用工厂方法来创建对象

可能重复:
工厂模式.何时使用工厂方法?
为什么存在静态Create方法?

虽然我知道什么是工厂设计模式.但我无法理解使用它有什么好处.我们为什么要使用Factory Design Pattern创建对象.

.net c# uml design-patterns factory-pattern

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

将PCRE递归正则表达式模式转换为.NET平衡组定义

PCRE具有称为递归模式的功能,可用于匹配嵌套的子组.例如,考虑"语法"

Q -> \w | '[' A ';' Q* ','? Q* ']' | '<' A '>'
A -> (Q | ',')*
// to match ^A$.
Run Code Online (Sandbox Code Playgroud)

它可以在具有模式的PCRE中完成

^((?:,|(\w|\[(?1);(?2)*,?(?2)*\]|<(?1)>))*)$
Run Code Online (Sandbox Code Playgroud)

(示例测试用例:http://www.ideone.com/L4lHE)

应该匹配:

abcdefg abc,def,ghi abc,,,def ,,,,,, [abc;] [a,bc;] sss[abc;d] as[abc;d,e] [abc;d,e][fgh;j,k] <abc> [<a>b;<c,d>,<e,f>] <a,b,c> <a,bb,c> <,,,> <> <><> <>,<> a<<<<>>><a>> <<<<<>>>><><<<>>>> <z>[a;b] <z[a;b]> [[;];] [,;,] [;[;]] [<[;]>;<[;][;,<[;,]>]>]

不应该匹配:

<a bc> <abc<de> [a<b;c>;d,e] [a] <<<<<>>>><><<<>>>>> <<<<<>>>><><<<>>> [abc;def;] [[;],] [;,,] [abc;d,e,f] [<[;]>;<[;][;,<[;,]>]]> <z[a;b>]

.NET中没有递归模式.相反,它为基于堆栈的操作提供了平衡组,以匹配简单的嵌套模式.

是否可以将上述PCRE模式转换为.NET Regex风格?

(是的,我知道最好不要使用正则表达式.这只是一个理论问题.)

参考

.net regex pcre recursive-regex balancing-groups

21
推荐指数
2
解决办法
1658
查看次数

Scala - 菜单栏仅在窗口内容重新生效时出现

import scala.swing._
import swing.event.{WindowClosing}
import java.awt.Dimension
object MenuBarTest {
  def main(args:Array[String]) {


    val frame = new Frame() {
      visible=true
      contents = new Panel() {
        preferredSize = new Dimension(600,400)
      }
      title = "Test"
      reactions += {
        case WindowClosing(e) => System.exit(0)
      }
      menuBar = new MenuBar {   
        contents += new Menu("A Menu") {      
          contents += new MenuItem("An item")      
          contents += new MenuItem(Action("Action item") { println(title) })       
          contents += new Separator        
          contents += new CheckMenuItem("Check me")
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

替代文字http://grab.by/grabs/4a0ffda4603149a4680415447c684129.png

我调整窗口大小的瞬间,菜单弹出. …

swing scala menu

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

CURL vs fsockopen chunking

这可能看起来有点奇怪..但我需要评估/解析通过HTTP使用HTTP发送的块.

值得注意的是,HTTP流可能永远不会结束.有没有什么方法可以解析块,因为我用CURL 得到它们

或者我是否必须采用一些自制的fsockopen()解决方案?

php curl fsockopen chunked-encoding

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

如何在Tcl中初始化数组?

在Tcl中初始化空数组的正确方法是什么?

我有以下代码(简化):

proc parseFile {filename results_array} {
    upvar $results_array results
    set results(key) $value
}

set r1 {}
parseFile "filename" r1
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误:无法设置"结果(键)":变量不是数组

arrays tcl

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

循环声明预处理器指令?或者定义之前包括?

我对C++有点新意,所以请耐心等待.我正在试图弄清楚我#defines#includes我的项目到底在哪里.我有这样的事情:

main.h

#include "other.h"

#define MAX_GROUPS 100

struct Cat
{
    int something[MAX_GROUPS];
}
Run Code Online (Sandbox Code Playgroud)

other.h我还需要使用MAX_GROUPS,那么我也定义MAX_GROUPSother.h这样的:

other.h

#define MAX_GROUPS 100

struct Other
{
     int taco[MAX_GROUPS];
}
Run Code Online (Sandbox Code Playgroud)

问题是我定义了一个不止一个地方.我想把它们放在一起.

或者,我会重新加入main.h吗?

other.h

#include "main.h"

struct Other
{
     int taco[MAX_GROUPS];
}
Run Code Online (Sandbox Code Playgroud)

这里的问题我认为它就像一个循环的依赖性东西.main.h包括other.h哪些包括main.h哪些包括other.h哪些包括...

设置项目的定义和包含的最佳方法是什么,以便将事物排序到其他包含的文件?通常的做法是在包含之前简单地完成所有定义吗?

c++ include c-preprocessor

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

LINQ to Entities在SQL 2005 Express上生成包含datetime2的查询

我有一个LINQ to Entities应用程序和一个数据库项目来管理针对.NET 4.0的VS 2010解决方案中的架构.目前,实体模型是从数据库中进行逆向工程的.其中一个表定义了一个datetime类型的列.数据库项目配置为使用SQL Server 2005兼容模式,因此它都可以正常部署.

我刚刚遇到一个问题,通过实体框架的更新语句似乎使用datetime2而不是datetime,这会导致异常,因为SQL 2005不支持该数据类型:

System.Data.UpdateException: An error occurred while updating the entries. 
See the inner exception for details. ---> System.ArgumentException: The version 
of SQL Server in use does not support datatype 'datetime2'.
Run Code Online (Sandbox Code Playgroud)

从堆栈跟踪显示错误似乎发生在:

System.Data.Mapping.Update.DynamicUpdateCommand
Run Code Online (Sandbox Code Playgroud)

我查看了所有SQL代码和实体代码,并确认datetime2没有引用(包括dbschema文件).我只能得出结论,数据类型是在实体框架生成的动态SQL查询中生成的.

我怎样才能确认或否认这一点,以及如何阻止它发生?实体框架不知道我已经要求db项目以2005兼容性模式为目标,并且我看不到一种方法来指出它正在查看的版本.为了它的价值,我在安装了2008 Express的机器上创建了这个项目,但我定期切换到另一台没有(并且还不能升级)的机器.

.net compatibility linq-to-entities sql-server-2005

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

Zeroconf API是否适用于Android?

android 2.2是否支持Zeroconf和MDNS相关的API?

android

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

"+ ="会重新分配吗?

请参阅以下代码:

val names = Set("Mike", "Jack")
names += "Jeff"
Run Code Online (Sandbox Code Playgroud)

会有错误:

error: reassignment to val 
Run Code Online (Sandbox Code Playgroud)

我在一些书中看到,它说+=实际上是一种方法,代码可以是:

val names = Set("Mike", "Jack")
names.+=("Jeff")
Run Code Online (Sandbox Code Playgroud)

如果+=是一种方法,为什么要分配"名称"?

scala

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