我使用AX_CXX_COMPILE_STDCXX_0X(可以查看autoconf-archive)来检查编译器的c ++ 11功能.它正确地确定了-std=c++0x所需,但不添加它CXXFLAGS.我看了一下宏源,它实际上检查了然后恢复了以前的标志.
我应该怎么做才能CXXFLAGS编译c ++ 11源代码?
只是添加-std=c++0x到AM_CXXFLAGS不是很好的解决方案,因为我想在autoconf开发人员,而不是我在C++ 11模式下编译编译器的负担.
我有一个Java程序,它是ProcessBuilder从另一个Java程序启动的.
System.exit(0)从子程序调用,但对于我们的一些用户(在Windows上),java.exe与子项关联的进程不会终止.子程序没有关闭挂钩,也没有SecurityManager可能停止System.exit()终止VM的挂钩.我无法在Linux或Windows Vista上自行重现此问题.到目前为止,问题的唯一报告来自两个Windows XP用户和一个Vista用户,使用两个不同的JRE(1.6.0_15和1.6.0_18),但他们每次都能够重现问题.
任何人都可以提出为什么JVM无法在之后终止System.exit(),然后只在某些机器上终止的原因?
编辑1:我让用户安装JDK,这样我们就可以从违规的虚拟机中获取一个线程转储.用户告诉我的是,一旦他点击我的菜单中的"退出"项目,VM进程就会从VisualVM中消失---但是,根据Windows任务管理器,该进程尚未终止,无论多长时间用户等待(分钟,小时),它永远不会终止.
编辑2:我现在已经确认Process.waitFor()在父程序中永远不会返回至少一个有问题的用户.总而言之:孩子VM似乎已经死了(VisualVM甚至没有看到它),但是父母仍然认为这个过程是实时的,Windows也是如此.
我试图在我的图表上绘制一条水平线.线的Y坐标应位于点a和b之间(a在b下方).该行的左右端点位于tikzpicture的边界框上.以下是我现在使用交集运算符执行此操作的方法:
\coordinate (h0) at ($(a.north)!0.5!(b.south)$); \draw (h0 -| current bounding box.west) -- (h0 -| current bounding box.east);
这让我感到非常迂回.我宁愿做的是得到(h0)的Y坐标和边界框的东边和西边的X坐标,并自己编写坐标.我想这样做,但不支持语法:
\coordinate (h0) at ($(a.north)!0.5!(b.south)$); \draw (current bounding box.west.x,h0.y) -- (current bounding box.east.x,h0.y);
有没有办法引用我遗漏的坐标的各个组成部分?
指示命令行程序选项结束的传统方法是使用该选项--.如何让boost :: program_options将此识别为一个选项并接受命令行的其余部分作为位置参数?以下不起作用:
namespace po = boost::program_options;
po::positional_options_description posOpts;
posOpts.add("keywords", 1);
posOpts.add("input", 1);
std::vector<std::string> final_args;
po::options_description desc("Allowed Options");
desc.add_options()
...
("", po::value< std::vector<std::string> >(&final_args)->multitoken(), "end of options")
...
;
po::command_line_parser(argc, argv).options(desc).positional(posOpts).run();
Run Code Online (Sandbox Code Playgroud)
如果我foo bar作为参数给出,我什么都没有final_args(正如预期的那样),但是当我-- foo bar作为参数给出时(我期望找到final_args[0] == "foo"和final_args[1] == "bar").我在这里假设这--是一个长参数,空字符串作为其参数名称.相反,如果它应该被解释为一个短参数,-作为参数名称,我该如何指定?从我可以看到,将参数规范从""to 更改为",-"不影响结果.
如何让boost :: program_options --正确处理?
编辑:这是尝试通过创建一个Tim Sylvester建议extra_style_parser:
std::vector<po::option> end_of_opts_parser(std::vector<std::string>& args) {
std::vector<po::option> result;
std::vector<std::string>::const_iterator i(args.begin());
if (i …Run Code Online (Sandbox Code Playgroud) 我有一些像这样的xml片段:
<!DOCTYPE mensaje SYSTEM "record.dtd">
<record>
<player_birthday>1979-09-23</player_birthday>
<player_name>Orene Ai'i</player_name>
<player_team>Blues</player_team>
<player_id>453</player_id>
<player_height>170</player_height>
<player_position>F&W</player_position> <---- a '&' here.
<player_weight>75</player_weight>
</record>
Run Code Online (Sandbox Code Playgroud)
有没有办法验证xml片段是否格式良好?有没有办法根据DTD或XML方案验证xml?
由于各种原因,我不能使用任何第三方包.
例如,上面的xml不是正确的,因为它中有一个'&'.请注意,DOCTYPE定义句子指的是DTD.
我正在尝试计算de Bruijn序列的字母表,这些字母表有许多不是2的幂的字符.
对于具有2 ^ k个字符的字母表,计算de Bruijn序列很容易:有几个简单的规则,例如"Prefer Ones"和"Prefer Opposites",它们用于生成B(2,n).如果您将1和0作为字母表中实际字符的二进制代码读取,则B(2 ^ k,n)与B(2,kn)完全相同.例如,您可以将B(2,8n)解释为超过n长度的字节序列.
首选Ones很简单:写n个零.然后,总是写一个,除非它会导致重复n长度的字符串; 否则,写一个零.
目前,我没有看到如何将这些规则推广到非幂级的两个字母表.
有一种通过图表计算de Bruijn序列的一般方法:让你的字母表生成的每个n长度序列成为一个节点; 如果A的最右边的n-1个字符与B的最左边的n-1个字符相同,则将A从边缘放到B边缘.用头顶点中的字符串的最后一个字符标记每个边缘.通过该图的任何欧拉路径将生成de Bruijn序列,并且我们使用的特殊构造保证将存在至少一条这样的路径.我们可以使用Fleury算法(非确定性地)构建欧拉路径:
结果字符串将是de Bruijn序列.
该算法比Prefer Ones实现起来要复杂一些.Prefer Ones的简单之处在于,只需查阅已生成的输出即可确定要执行的操作.有没有一种简单的方法可以将Prefer Ones(或者,可能更喜欢Opposites)推广到非二次幂大小的字母表?
我在批处理脚本中看了几次,但是我不确定它实际上是做什么的.它的两次出现在@echo(它后面的文本打印到控制台)下面,并且是与@echo一起打印的文本的完全重复.
假设我有一个正则表达式语言支持文字,正面和负面的字符类,有序交替,和贪婪的量词?,*和+.(这基本上是一个没有反向引用PCRE的子集,环视断言,或其他一些票友位.)是否加入nongreedy量词??,*?以及+?增加这种形式主义的表现力?
换句话说,给定一个包含非定量量词的模式S,该模式是否可以重写为不包含非同义量词的等效模式?
如果在文献中考虑过这个问题,我会感谢任何人都可以提供的任何参考.我几乎没有关于扩展正则表达式形式主义的表达能力的任何理论工作(除了关于后向引用如何将你从常规语言转移到无上下文语法之外).
假设我有一个正则表达式语言支持文字,正面和负面的字符类,有序交替,贪婪的量词?,*以及+和nongreedy量词??,*?和+?.(这实际上是PCRE的一个子集,没有反向引用,环视断言或其他一些更高级的位.)用无序交替替换有序交替是否会降低这种形式主义的表达能力?
(无序交替---有时也称为"无序选择"---是L(S | T)= L(S)+ L(T),而有序交替是L(S | T)= L (S)+(L(T) - {a in L(T):a在L(S)中延伸一些b}}.具体地说,模式a|aa将匹配字符串a,aa如果交替是无序的,但仅a在交替时订购.)
换句话说,给定包含有序交替的模式S,该模式是否可以重写为不包含有序替换的等效模式T(但可能是无序替换)?
如果在文献中考虑过这个问题,我会感谢任何人都可以提供的任何参考.我几乎没有关于扩展正则表达式形式主义的表达能力的任何理论工作(除了关于后向引用如何将你从常规语言转移到无上下文语法之外).
Java 6中的本机Windows LookAndFeel似乎错误地调整了某些字体的大小.
测试程序:
import java.awt.*;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class Test {
public static void main(String[] arg) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
e.printStackTrace();
}
final JMenuBar mb = new JMenuBar();
final JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
mb.add(file);
final JToolBar toolbar = new JToolBar();
final JButton button = new JButton("Button");
toolbar.add(button);
final JLabel label = new JLabel("Basic Colors");
final JPanel panel = new JPanel(new BorderLayout()); …Run Code Online (Sandbox Code Playgroud)