小编Gup*_*pta的帖子

如何驱动C#,C++或Java编译器在编译时计算1 + 2 + 3 + ... + 1000?

在最近的一次采访中,我被问到一个非常奇怪的问题.面试官问我如何使用编译器功能计算1 + 2 + 3 + ... + 1000.这意味着我不允许编写程序并执行它,但我应该编写一个程序,可以驱动编译器在编译时计算这个总和,并在编译完成时打印结果.作为提示,他告诉我,我可能会使用编译器的泛型和预处理器功能.可以使用C++,C#或Java编译器.有任何想法吗???

这个问题与计算总和无关,这里没有任何循环问题.此外,应该注意,总和应该在编译期间计算.不能使用C++编译器指令打印结果.


阅读更多关于发布的答案,我发现在使用C++模板编译期间解决问题称为元编程.这是Erwin Unruh博士在标准化C++语言过程中偶然发现的一种技术.您可以在元编程的wiki页面上阅读有关此主题的更多信息.似乎可以使用Java注释在Java中编写程序.您可以在下面看看maress的答案.

关于C++的元编程一个很好的书是这一个.如果感兴趣,值得一看.

一个有用的C++元编程库是Boost的MPL 这个链接.

c# c++ java compiler-construction metaprogramming

121
推荐指数
9
解决办法
8407
查看次数

如何在Macbook Pro上启用CPU虚拟化支持?

我在我的Macbook Pro上安装了VirtualBox,我想在VirtualBox上安装一个Linux VM.当我启动新VM时,它会提示"您的CPU不支持长模式.使用32位分发."

在搜索此问题后,我发现此VM需要支持CPU虚拟化.然后我检查了我的Macbook,它的CPU是支持虚拟化的i7.所以我猜这个问题与OS或EFI版本有关?

操作系统版本:10.6.8/EFI版本:最新版本(请访问apple.com)

有谁知道我的Macbook有什么问题?如何启用CPU虚拟化支持?

macos cpu virtualization

37
推荐指数
2
解决办法
10万
查看次数

事后,从git存储库中修剪二进制数据

我不小心将一些大型二进制数据提交到了一些提交中.从那以后我更新了我的.gitignore,这些文件不再被提交了.但是我想回到旧的提交中,有选择地从存储库中删除这些数据,删除应该在.gitignore中的几个目录.我不想删除提交本身.

我将如何实现这一目标?我首选的方法是将.gitignore规则追溯应用于旧提交的某种方式...使用此方法的答案对其他人来说也非常有用,因为我确信我的问题不是唯一的.它也可以快速应用于通用解决方案,而无需针对每个用户的唯一目录结构进行大量自定义.

这是可能的,无论是我上面提出的简单方法,还是以更复杂的方式?

git version-control binary-data

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

如何从命令行构建IntelliJ项目?

我正在寻找从命令行构建IntelliJ项目的最佳方法.在构建服务器上编译IntelliJ项目时通常需要这样做.

command-line build intellij-idea

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

C#和Java语法是LALR(x)吗?

我想知道C#和Java语法是否是LALR(x)?如果是的话,x的价值是多少?

编辑:

在接受了真正的答案之后,我认为以这种方式改变Q更好:

是否有任何LALR(x)解析器可以解析当前版本的Java(版本7)或C#(版本4)?如果是,x的值是多少?

c# java parsing lalr

17
推荐指数
3
解决办法
2953
查看次数

将新行字符添加到textarea而不是提交表单

我有一个带有文本区域的表单,然后点击回车键提交我的表单.如何使其添加新行字符而不是表单提交.

html javascript jquery textarea

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

有界0-1多背包的任何伪多项式算法?

假设有n个项目,例如i 1,i 2,...... i n,它们中的每一个都具有已知的有界权重w 1,w 2,... w n.还有一组m背包,例如k 1,k 2和k m.背包是同质的,它们都具有相同的容量W.功能F可以确定每个背包的得分.F的输入是每个背包中的项目.所以,

Score of each knapsack i = F(Items in knapsack i)
Run Code Online (Sandbox Code Playgroud)

现在我想把一些物品放在背包里,这样:

  1. 背包中物品的重量不超过其容量W.
  2. 所有背包的得分总和最大

是否存在针对此问题的多项式时间解决方案?

注意:问题是0-1,即每个项目都可以选择.所有问题参数都是有界的.

编辑1:是不是可以减少这个问题来装箱,然后得出结论,这是一个NP难问题?

编辑2在此问题中,每个项目都有三个属性,例如属性a i,b i和c i.F函数是一个线性函数,它获取其中项目的属性并生成输出.

编辑3:本文似乎为多背包问题提出了一个精确的解决方案.可以用在我的情况下吗?

algorithm optimization knapsack-problem constraint-programming

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

使用自己的迭代器分配容器是否安全?

举个例子:

string s = "123";
s.assign(find(s.begin(),s.end(),'2'), s.end());
Run Code Online (Sandbox Code Playgroud)

上面代码的行为是否定义?或者它会导致未定义的行为?

c++

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

是否可以在Bamboo项目的计划之间共享一个内部版本号?

我使用Atlassian Bamboo作为我的持续集成服务器.对于一个项目,我已经定义了两个计划,即开发计划和发布计划.不幸的是,Bamboo为这些计划中的每一个使用两个单独的构建号.这使我无法通过其内部版本号识别项目范围内的构建.有没有办法在Bamboo的项目的所有构建计划之间共享一个构建号?

build-automation build-process build bamboo

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

集成使用svn,Jira和Bamboo的最佳实践?

我目前专注于使用svn,Jira和Bamboo设置软件配置管理流程.不幸的是,我找不到使用上述工具的任何定义或标准做法.我正在寻找一套最佳实践,包括:

  1. 分支的最佳方式
  2. 保持发展线的最佳模式
  3. 使用jira问题的最佳方法是使用svn提交
  4. ...

Microsoft为其TFS解决方案提出了一个良好的配置管理实践.针对上述工具的任何已知最佳实践?

svn jira bamboo

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