小编bdo*_*lan的帖子

C中的可变大小数组

我想我的问题是以下是否有效C.

int main(void) {
  int r = 3;
  int k[r];
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果是这样,有人会解释为什么它在Microsoft的C编译器中不起作用,而在GCC中,以及它被添加到C标准时.

谢谢

c arrays

6
推荐指数
3
解决办法
659
查看次数

非类型模板参数......这是一个模板!(C++)

我基本上希望为通用C函数生成包装器,而无需手动指定类型.所以我有一个带有固定原型的回调,但是我需要根据包装函数的类型在包装器中做一些特殊的代码......所以基本上我在考虑在类模板中使用静态方法将我的函数包装到一致的接口,例如:

// this is what we want the wrapped function to look like
typedef void (*callback)(int); 
void foobar( float x ); // wrappee

// doesn't compile
template< T (*f)(S) > // non-type template param, it's a function ptr
struct Wrapper
{
  static void wrapped(int x)
  {
     // do a bunch of other stuff here
     f(static_cast<S>(x)); // call wrapped function, ignore result

  }
}
Run Code Online (Sandbox Code Playgroud)

然后我想做一些像:

AddCallback( Wrapper<foobar>::wrapped );
Run Code Online (Sandbox Code Playgroud)

但是,问题是我不能继续在Wrapper模板中的函数参数中使用"S",我必须先将其列为参数:

template< class T, class S, T (*f)(S) >
struct Wrapper
// ... …
Run Code Online (Sandbox Code Playgroud)

c++ templates marshalling wrapper

6
推荐指数
2
解决办法
1830
查看次数

序列化原始boost :: variant是否安全?

boost :: variant声称它是一个值类型.这是否意味着简单地写出boost :: variant的原始表示并稍后加载它是安全的,只要它只包含POD类型?假设它将由相同编译器编译的代码和相同版本的boost在同一架构上重新加载.

另外,(可能)等效地,可以在共享内存中使用boost :: variant吗?

c++ serialization boost shared-memory boost-variant

6
推荐指数
2
解决办法
3314
查看次数

C/C++字符串文字中的未知元字符?

我创建了一个包含以下代码段的新项目:

char* strange = "(Strange??)";
cout << strange << endl;
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

(奇怪]

因此翻译'??)' - >']'

调试它显示我的char*字符串文字实际上是该值,它不是流转换.这显然不是我见过的元字符序列.某种Unicode或宽字符序列也许?我不这么认为......我试过禁用所有相关的项目设置无济于事.

有人有解释吗?

  • 搜索:'问号,问号,闭括号'c c ++ string literal

c c++ trigraphs visual-c++

6
推荐指数
3
解决办法
2028
查看次数

有没有像c ++那样的virtualenv工具?

我发现c ++问题中的测试环境有问题.

我们有一台机器从版本控制系统下载代码,并构建它并执行单元测试,没什么新东西.

当我们在项目中添加新的依赖项时会出现问题.我们正在同时开发许多功能,这是相对常见的.我们发生这种情况时,我们必须建议测试人员并给他们一个简单的方法来重现编译环境......

而且我在想是否有其他简单的方法可以解决这个问题...不知道,像virtualenv或buildout for python这样的工具..

我一直在谷歌搜索,但没有运气.

任何帮助将不胜感激.

c++ dependencies build-process

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

与facebook和gmail相比,我自己的长轮询实现

几天来,我一直在试验我的网站的长轮询/彗星实施.我得到了它如何工作的基本概念,这是我运行一些测试的地方.

另一方面,我一直在观察(firebug)gmail和facebook如何实现长轮询.我在gmail中注意到的是ajax请求在当前请求到期后不会继续跟进,但是在它触发下一个请求之前等待几秒/分钟.

我玩了一些.我尝试使用firefox中的gmail帐户A和Chrome中的gmail帐户B登录.我在当前的ajax民意调查结束时等待,然后我从账户B发送了一封电子邮件给A.我希望账户A在下次投票之前不会收到它,但令我惊讶的是账户A在我点击之后直接收到它提交按钮.

gmail如何通过长轮询进行此操作?

如果您尝试访问我的站点并单击"运行"按钮并打开firebug,则可以看到ajax微调器始终在运行.当服务器响应数据时,它再次请求服务器.

ajax jquery comet long-polling

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

LoadLibrary引用计数

来自MSDN:

系统在所有已加载的模块上维护每个进程的引用计数.调用LoadLibrary会增加引用计数.

存储的引用计数在哪里?

windows internals shared-libraries

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

C++固定大小的数组与相同类型的多个对象

我想知道(除了明显的语法差异)是否有一个类包含一个对象(相同类型的)的多个实例或该类型的固定大小的对象数组之间的任何效率差异.

在代码中:

struct A {
  double x;
  double y;
  double z;
};

struct B {
  double xvec[3];
};
Run Code Online (Sandbox Code Playgroud)

实际上我会使用boost :: arrays,它是C风格数组的更好的C++替代品.

我主要关注构造/破坏和读/写这样的双打,因为这些类通常只是为了调用它们的一个成员函数而构造一次.

感谢您的帮助/建议.

c c++ micro-optimization

5
推荐指数
2
解决办法
671
查看次数

在Windows上应用补丁程序的GUI实用工具是什么?

我正在寻找一个适用于Windows的优秀GUI修补程序实用程序-这是我将发送给以前没有使用过修补程序的人的工具,因此易用性很重要。我知道WinMerge可以生成补丁,但不能应用它们。Windows是否存在这样的GUI实用程序?

PS-我考虑过将此内容发布给超级用户,但是由于diff / patch主要是编程工具,因此我认为它更适合于此。如果没有其他共识,我将投票决定自己迁移。

windows diff patch utility

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

68k 寄存器地址

这个问题是在乞求一堆“你为什么要这样做?” 回应。

我无法在68k 程序员参考手册 中找到此信息,但这可能是因为我不确定要搜索什么措辞。

这是 68kADD操作码的指令格式。

在此处输入图片说明

位 0-2 和 9-11 指定寄存器。68k 寄存器的二进制表示是什么?它们是“地址”吗?

是的,我知道我可以编写 68k 汇编程序并对其进行调试以找到此信息。我正在寻找参考。谢谢!

assembly 68000 instruction-set machine-code

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