小编amp*_*ier的帖子

模板自动返回类型和歧义

我有一个重载的模板函数:

template<typename T1, typename T2>
auto overMax(T1 a, T2 b)
{
    std::cout << __FUNCSIG__ << std::endl;

    return b < a ? a : b;
}

template<typename RT, typename T1, typename T2>
RT overMax(T1 a, T2 b)
{
    std::cout << __FUNCSIG__ << std::endl;

    return b < a ? a : b;
}
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼它:

auto a = overMax(4, 7.2); // uses first template
auto b = overMax<double>(4, 7.2); // uses second template
Run Code Online (Sandbox Code Playgroud)

一切都很完美,但是

auto c = overMax<int>(4, 7.2); // error
Run Code Online (Sandbox Code Playgroud)

导致模棱两可的调用。

为什么 …

c++ templates template-argument-deduction c++17 visual-studio-2019

20
推荐指数
1
解决办法
467
查看次数

在macOS上获取当前用户的桌面路径

我用

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES );
NSString* theDesktopPath = [paths objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

它运作良好.但是当我使用sudo启动应用程序时,它会提供root的桌面路径.有没有办法永远返回当前用户的桌面(即使应用程序是用sudo启动的)?

cocoa objective-c

7
推荐指数
2
解决办法
4703
查看次数

用于本地主机和生产的Azure Active Directory应用程序注册

我成功注册了ASP.NET MVC应用程序以与Azure AD一起使用。当前,登录URL参数(Azure Active Directory-> App注册-> New Application注册)看起来像https:// localhost:44302 /

但是对于生产来说,显然是另一回事(例如,https://mycoolapp.com

如何设置应用程序,以便可以在本地(例如,用于调试)和生产环境中使用Azure AD。

似乎每次都更改登录URL参数似乎不是一个好的选择。

asp.net-mvc azure azure-active-directory

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

Qml 属性与别名

要获取父组件的属性值并将它们分配给子属性,我们可以直接使用父属性

//Component1.qml:

Item
{
    Component2
    {
        contentWidth:200
    }
}

//Component2.qml:

Item
{
    property int contentWidth:0
    Rectangle
    {
        width:parent.contentWidth
    }
}
Run Code Online (Sandbox Code Playgroud)

或创建别名

//Component1.qml:

Item
{
    Component2
    {
        contentWidth:200
    }
}

//Component2.qml:

Item
{
    property alias contentWidth:rect.width
    Rectangle
    {
        id:rect
    }
}
Run Code Online (Sandbox Code Playgroud)

什么时候最合适?

我的想法是,当父属性仅用于一个特定的子组件属性时,应使用别名(contentWidth仅用于rect.width

qml

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

在ASP.NET WEP API控制器中确认后重定向

我有web api帐户控制器,我确认用户电子邮件

    [System.Web.Http.AllowAnonymous]
    [System.Web.Http.HttpGet]
    [System.Web.Http.Route("ConfirmEmail", Name = "ConfirmEmailRoute")]
    public async Task<IHttpActionResult> ConfirmEmail(string userId = "", string code = "")
    {
        if (string.IsNullOrWhiteSpace(userId) || string.IsNullOrWhiteSpace(code))
        {
            ModelState.AddModelError("", "User Id and Code are required");
            return BadRequest(ModelState);
        }

        IdentityResult result = await this.AppUserManager.ConfirmEmailAsync(userId, code);

        if (result.Succeeded)
        {
            return Ok();
        }
        else
        {
            return GetErrorResult(result);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当用户单击来自电子邮件的确认链接时,将调用此方法.之后,我想将其重定向到"ConfirmidSuccessfully"页面

在MVC中,我们可以这样做:

return View("ConfirmidSuccessfully");
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以重定向:

var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri("/ConfirmidSuccessfully");
return response;
Run Code Online (Sandbox Code Playgroud)

实际上有两个问题:根据WEB API从web api方法重定向是好还是有更好的方法什么是最合适的方法

asp.net-mvc asp.net-web-api2

4
推荐指数
1
解决办法
1924
查看次数

在 Ubuntu 上的 Visual Studio 代码中编译 C++

我正在尝试编译一个非常简单的代码。我放入了从这里复制的 tasks.json 配置 。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build & debug file",
      "type": "shell",
      "command": "g++",
      "args": [
        "-g",
        "-o",
        "${fileBasenameNoExtension}",
        "${file}"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    },
    {
      "label": "build & run file",
      "type": "shell",
      "command": "g++",
      "args": [
        "-o",
        "${fileBasenameNoExtension}",
        "${file}"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是当我构建 (ctrl+shift+b) 时出现错误:

usr/bin/ld:/home/username/LinuxProjects/FirstCppProject/.vscode/tasks.json:文件格式无法识别;视为链接器脚本 /usr/bin/ld:/home/username/LinuxProjects/FirstCppProject/.vscode/tasks.json:1:语法错误 collect2:错误:ld 返回 1 退出状态终端进程以退出代码终止:1

我不明白 json 有什么问题。

c++ ubuntu visual-studio-code

4
推荐指数
1
解决办法
3085
查看次数

使用webpack时Bootstrap popper问题

我想在我的main.ts中包含bootstrap,以便在_Layout.cshtml中我不需要编写

<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
Run Code Online (Sandbox Code Playgroud)

走吧

<script src="~/bundle/bundle.js" asp-append-version="true"></script>
Run Code Online (Sandbox Code Playgroud)

当我在main.ts中添加bootstrap(4.0.0-beta)时,如下所示:

require("bootstrap");
Run Code Online (Sandbox Code Playgroud)

我在控制台输出中出错

错误:Bootstrap下拉列表需要Popper.js(https://popper.js.org)

我安装了popper:

npm install popper
Run Code Online (Sandbox Code Playgroud)

并将其添加到插件部分,所以它看起来像

plugins: [
            new CleanWebpackPlugin([bundleFolder]),
            new webpack.ProvidePlugin({
                $: node_dir + "/jquery",
                jQuery: node_dir + "/jquery",
                'window.$': node_dir + '/jquery',
                Popper: ['popper.js', 'default']
            })
        ]
Run Code Online (Sandbox Code Playgroud)

但得到另一个webpack脚本错误:

错误在./node_modules/bootstrap/dist/js/bootstrap.js模块未找到:错误:无法在"d解决 'popper.js':\项目\ TestApp\TestApp.Web \node_modules \引导\ DIST\JS '@ ./node_modules/bootstrap/dist/js/bootstrap.js 1:0-20 @ ./app/main.ts

目前我不知道如何解决它.

webpack asp.net-core-mvc bootstrap-4 popper.js

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

将 bash 脚本嵌入到 makefile 中

我想在 makefile 中包含一些条件语句:

SHELL=/bin/bash
all: 
        $(g++ -Wall main.cpp othersrc.cpp -o hello)
        @if [[ $? -ne -1 ]]; then \
          echo "Compile failed!"; \
          exit 1; \
        fi
Run Code Online (Sandbox Code Playgroud)

但得到一个错误:

/bin/bash: -c: 第 0 行:需要条件二元运算符 /bin/bash: -c: 第 0 行:-1' /bin/bash: -c: line 0:if [[ -ne -1 ]] 附近的语法错误;然后 \' makefile:3: 目标 'all' 的配方失败 make: *** [all] 错误 1

如何修复它?

linux bash ubuntu gcc makefile

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

实体框架核心原始SQL问题

我有一张History有栏的桌子C0, C1, C2, C3, TimeStamp

我想根据输入以及相应的选择一个特定的列TimeStamp

channelId是“C2”

var context = new DalModels.DbContext();
string command = "SELECT TimeStamp, @channelId FROM dbo.History";
var user = new SqlParameter("@channelId", channelId);
var result = context.History.FromSql(command, user).ToList();
Run Code Online (Sandbox Code Playgroud)

但是我没有得到结果,而是出现了一个例外:

没有为“ h”的列2指定列名。

无效的列名“ C0”。

无效的列名“ C1”。

无效的列名“ C2”。

无效的列名“ C3”。

无效的列名“ TimeStamp”。

c# entity-framework-core

0
推荐指数
1
解决办法
65
查看次数