我真的觉得我不应该问SO这样的问题来获得这样的基本信息,但我无法在任何地方找到可靠的来源.
WiX v4发布了吗?开发中?在Beta中?还在设计?
很多人似乎已经在使用WiX v4,正如有关它的SO问题所证明的那样.它在WiX网站上有一个官方发布页面,没有提到"Beta"或"Release Candidate"等,如下:http://wixtoolset.org/releases/v4-0-0-5205/
但是,GitHub上没有针对v4发布的版本:https://github.com/wixtoolset/wix4/releases
Wix主页仍然指示您下载v3.
其中一个开发者的博客最近有一篇关于v4的帖子,它使用了将来时态语言,比如"将拥有"和"应该支持".
但最糟糕的是,当前版本的WiX visual studio集成工具具有v4模板,这使得v4似乎得到官方支持!
当你尝试构建其中一个模板时,构建错误The WiX Toolset v4 build tools must be installed ... To download WiX Toolset v4, see http://wixtoolset.org/releases/尽管http://wixtoolset.org/releases/包含专门针对v3的下载!
这是一堆疯狂的混合信息.
是否有某些地方正式说明了WiX v4的状态?
我正在使用Visual Studio 2013进行开发,它使用了Microsoft的c ++编译工具v12.
以下代码执行正常,将"foo"打印到控制台:
#include <regex>
#include <iostream>
#include <string>
std::string get() {
return std::string("foo bar");
}
int main() {
std::smatch matches;
std::string s = get();
std::regex_match(s, matches, std::regex("^(foo).*"));
std::cout << matches[1] << std::endl;
}
// Works as expected.
Run Code Online (Sandbox Code Playgroud)
使用字符串"s"替换"get()"函数的相同代码在运行时抛出"字符串迭代器不兼容"错误:
#include <regex>
#include <iostream>
#include <string>
std::string get() {
return std::string("foo bar");
}
int main() {
std::smatch matches;
std::regex_match(get(), matches, std::regex("^(foo).*"));
std::cout << matches[1] << std::endl;
}
// Debug Assertion Failed!
// Expression: string iterators incompatible
Run Code Online (Sandbox Code Playgroud)
这对我来说毫无意义.谁能解释为什么会这样?