小编zer*_*287的帖子

`{}` 对返回表达式的意义

我偶然发现以下编译:

#include <string>
#include <iostream>

class A{
    int i{};
    std::string s{};
    public:
        A(int _i, const std::string& _s) : i(_i), s(_s) {
            puts("Called A(int, const std::string)");
        }

};

A foo(int k, const char* cstr){
    return {k, cstr};           // (*)
}

int main(){
    auto a = foo(10, "Hi!");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

感兴趣的线是 (*)。我猜这个函数foo相当于:

A foo(int k, const char* str){
    return A(k, cstr);
}
Run Code Online (Sandbox Code Playgroud)

但是,(*) 中是否有针对此机制的特殊名称?或者仅仅是编译器知道由于返回类型而调用哪个构造函数的简单事实?

c++ return list-initialization

20
推荐指数
2
解决办法
2250
查看次数

警告 LNK4017:目标平台不支持说明语句;被忽略

当我在 Visual Studio 2008 上将源代码从 VC++6 移植到 VC++9 时,我收到此警告。

\n
\n

警告 LNK4017:目标平台不支持说明语句;被忽略

\n
\n

我打开了*.def给我这个警告的文件,但我仍然不知道如何修复这个警告。这是内容:

\n
; sctcomDLL.def : DLL \xe7\x94\xa8\xe3\x81\xae\xe3\x83\xa2\xe3\x82\xb8\xe3\x83\xa5\xe3\x83\xbc\xe3\x83\xab \xe3\x83\x91\xe3\x83\xa9\xe3\x83\xa1\xe3\x83\xbc\xe3\x82\xbf\xe5\xae\xa3\xe8\xa8\x80\nLIBRARY      "SCTCOMDLL"\nDESCRIPTION  'SCTCOMDLL Windows Dynamic Link Library'\nEXPORTS\n; \xe6\x98\x8e\xe7\xa4\xba\xe7\x9a\x84\xe3\x81\xaa\xe3\x82\xa8\xe3\x82\xaf\xe3\x82\xb9\xe3\x83\x9d\xe3\x83\xbc\xe3\x83\x88\xe3\x81\xaf\xe3\x81\x93\xe3\x81\x93\xe3\x81\xb8\xe8\xa8\x98\xe8\xbf\xb0\xe3\x81\xa7\xe3\x81\x8d\xe3\x81\xbe\xe3\x81\x99\n
Run Code Online (Sandbox Code Playgroud)\n

c mfc visual-studio-2008 visual-c++

6
推荐指数
0
解决办法
6681
查看次数

Android Activity 中的主循环

我在哪里可以找到 android 中的主循环或者如何实现它?
例如,如果我想x在每次运行活动时增加并测试是否x超过某个值,那么当没有主循环时我该怎么做?

android android-activity

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

Yaml:如何排除 VSTest@2 中的某些测试

目前,我们正在转向 AzureDevOps。我们有一些单元测试在代理上失败,但我们没有能力立即修复它们。在修复它们之前,我们希望将它们从管道中排除,并设置所有测试都应通过的策略,然后逐一修复它们。

让我说,我有4个exe,分别是ABE_uTest.exe、BBE_uTest.exe、CBE_uTest.exe和DBE_uTest.exe。我想排除 BBE 和 CBE。在文档页面(AzureDevOps VsTest)上,我找到了如何排除文件。

测试程序集版本2: | # 当 testSelector == TestAssemblies 时需要
# *test .dll
# ! *TestAdapter.dll
#!
\对象*

所以我认为只需 a*_uTest.exe !BBE* !CBE*就可以了。但我错过了一些东西,因为我无法让它发挥作用。它要么不过滤任何内容,要么过滤所有内容。这是 yaml 的相应部分。

- task: VSTest@2
  displayName: VsTest - testAssemblies
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: '*_uTest.exe
      !*BBE*'
    searchFolder: '$(BuildPlatform)_$(BuildConfiguration)\testbin\'
Run Code Online (Sandbox Code Playgroud)

这testAssemblyVer2将是设置。我尝试只使用一个排除二进制文件以使其更简单。我尝试过'在开头和结尾有或没有角色。还尝试了一行和单独一行,但没有成功。我总是收到这样的消息:

##[warning]No test sources found matching the given filter '*_uTest.exe !BBE_uTest.exe'

使用 yaml 排除 AzureDevOps 中的文件的正确语法是什么?

vstest azure-pipelines

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