tuple 在boost和TR1/c ++ 0x中提供了一个方便的(对于函数的编写者)方法从函数返回两个值 - 但它似乎损坏了调用者语言的一个主要特征:简单使用的能力初始化变量的函数:
T happy();
const auto meaningful_name(happy()); // RVO means no excess copies
Run Code Online (Sandbox Code Playgroud)
但对于:
tuple<T,U> sad();
Run Code Online (Sandbox Code Playgroud)
我们要么放弃为返回值选择有意义的名称的能力,要么在get<n>()任何地方使用:
const auto two_unrelated_things(sad());
Run Code Online (Sandbox Code Playgroud)
或临时:
const auto unwanted_named_temporary(sad());
const auto one_name(get<0>(unwanted_named_temporary));
const auto two_name(get<1>(unwanted_named_temporary));
Run Code Online (Sandbox Code Playgroud)
或从初始化切换到赋值,仅在类型可分配时有效,并且中断auto:
tuple_element<0, decltype(sad())>::type one_mutable; // there might be a less
tuple_element<1, decltype(sad())>::type two_mutable; // verbose way
tie(one_mutable,two_mutable) = sad();
Run Code Online (Sandbox Code Playgroud)
或者对当地班级做一些不自然的事情:
const struct ugh {
ugh( decltype(sad()) rhs ) : one_name(get<0>(rhs)), two_name(get<1>(rhs)) {}
const tuple_element<0, decltype(sad())>::type one_name;
const tuple_element<1, decltype(sad())>::type two_name;
} stuff(sad()); …Run Code Online (Sandbox Code Playgroud) 有没有办法通过PhpMyAdmin接口向InnoDB表添加复合(多列)外键?我已经在目标表中拥有了相应的复合主键,并且我可以单列外键约束,但是我在界面中找不到复合键的方法.
Table Log
- Date
- Service
PRIMARY KEY (Date,Service)
Table Issue
- Issue_Id
- Log_Date
- Log_Service
PRIMARY KEY Issue_Id
FOREIGN KEY (Log_Date=Log.Date,Log_Service=Log.Service)
Run Code Online (Sandbox Code Playgroud)
除外键外,一切都已设置好; 我进入PhpMyAdmin关系视图,我只能看到如何针对Log.Date设置FK而不是针对Log.Service.
在Windows上,当通过MSI安装的程序通过公布的快捷方式运行时,它会检查所有已安装的功能是否存在并运行自我修复/自动修复以替换丢失的功能.
是否可以将文件的ACL设置为安装时的功能,如果ACL错误,将自我修复?如果重要,该文件有问题
我目前正在使用WiX来构建我的安装程序.