问题列表 - 第317958页

g++、valarray 和 auto 是怎么回事?

以下代码在 cl.exe 中运行良好(产生预期输出 2, 9.9)。

对于 g++,使用 -O3 优化时根本不会产生任何输出,而使用 -O1 和 -O2 优化时会产生错误的输出 (1,10)。

g++ 的版本是 12.2.0,从 Windows 10 中的命令窗口运行。

我对 auto 和 valarray 有错误的期望,还是我只是做了一些愚蠢的事情?

#include <iostream>
#include <valarray>

int main()
{
   double dx = 0.1;
   std::valarray<double> Y{ 1.0, 10.0 };

   // Works fine with g++, all optimisation levels
// std::valarray<double> dY1 = dx * std::valarray<double>{ Y[1], -Y[0] };
// Y += dY1;

   // Fails completely with g++ -O3; gives wrong answer with -O1 and -O2; works fine with cl.exe …
Run Code Online (Sandbox Code Playgroud)

c++

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

如何从 Laravel 中的 Spatie\Dns\Records\A 对象中提取 IP 地址

我正在使用 Laravel 和Spatie DNS Retriever从域名获取 IP 地址。

\n

这是我的控制器方法:

\n
public function getDomainInfo($domain)\n    {\n        $dns = new Dns();\n        $recordsA = $dns->getRecords($domain, [\'A\', \'CNAME\']);\n\n        // dd($recordsA);\n\n        $ip = $recordsA[0]->ip;\n        dd($ip);\n\n        return view(\'client.domain\', compact(\'records\',\'recordsA\',\'recordsMX\',\'recordsMX\',\'recordsAll\'));\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

我收到此错误:

\n

无法访问受保护的属性 Spatie\\Dns\\Records\\A::$ip

\n

然而,结果将dd($recordsA)其显示为输出:

\n
array:1 [\xe2\x96\xbc // app/Http/Controllers/Client/IpInfoController.php:43\n  0 => Spatie\\Dns\\Records\\A {#294 \xe2\x96\xbc\n    #host: "google.com"\n    #ttl: 418\n    #class: "IN"\n    #type: "A"\n    #ip: "216.239.38.120"\n  }\n]\n
Run Code Online (Sandbox Code Playgroud)\n

那么这里出了什么问题呢?这种情况下如何获取ip值呢?

\n

我也尝试过这样获取 ip 值,但没有成功:

\n

dd($recordsA[0][\'ip\']);

\n

并返回此错误:

\n

无法将 Spatie\\Dns\\Records\\A 类型的对象用作数组

\n

php ip dns laravel

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

为什么 pg_dump/psql 抛出“致命:启动数据包中没有指定 PostgreSQL 用户名”?

我正在尝试在我们的 postgresql 服务器 v13 上运行 pg_dump (甚至 psql),其中包含来自 v13 和 v16 的二进制文件。两者都不适用于我,但适用于我不在 Mac 上的同事,不确定是否与此相关。

当我尝试运行时:

pg_dump -U grails --verbose --host=<host> --port=<port> --format=plain <db_name> > <target_file>
Run Code Online (Sandbox Code Playgroud)

甚至简单:

psql -U grails --host=.. --port=..
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

pg_dump: error: connection to server at "...", port ... failed: FATAL:  no PostgreSQL user name specified in startup packet
connection to server at "...", port ... failed: FATAL:  no PostgreSQL user name specified in startup packet
pg_dump(71055,0x1db08dec0) malloc: *** error for object 0x92: pointer being freed was not …
Run Code Online (Sandbox Code Playgroud)

postgresql pg-dump

25
推荐指数
2
解决办法
5201
查看次数

Drizzle Studio:没有足够的信息来推断关系

我正在尝试启动 drizzle studio 但出现以下错误:

Error: There is not enough information to infer relation "restaurantsTable.categories"

我做错了什么?

模式.ts

export const restaurantsTable = pgTable("restaurants", {
  id: serial("id").primaryKey(),
  [...]
});

export const restaurantTableRelations = relations(restaurantsTable, ({ one, many }) => ({
  menu: many(menuTable),
  categories: many(categoryTable, { relationName: 'categories' }),
}));

export const categoryTable = pgTable("categories", {
  id: serial("id").primaryKey(),
  restaurant_id: integer('restaurant_id').notNull()
});

export const categoryTableRelations = relations(categoryTable, ({ one }) => ({
  menu: one(menuTable, {
    fields: [categoryTable.restaurant_id],
    references: [menuTable.id],
    relationName: 'menu'
  })
}));
Run Code Online (Sandbox Code Playgroud)

postgresql drizzle sveltekit

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

Cypress:无法使用 else if 条件,并且不会执行任何步骤,但计时器正在运行

无法使用下面的 else if 条件并始终坚持使用 if

cy.get("#result").iframeOnload().find(".text-error").invoke('text').as('iframeText');
            cy.get('@iframeText').then((iframeText) => {
                if(iframeText === expectedFailText){
                    ResultPage
                    .getResultErrorMessage()
                    .should("have.text", expectedFailText);
                }
                else if(expectedPassText){
                    ResultPage
                    .getResultPassedMessage()
                    .should("have.text", expectedPassText);
                }
            });
Run Code Online (Sandbox Code Playgroud)

javascript iframe cypress

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

使用 .NET 8 无法识别 RuntimeIdentifier

我想使用 .NET 8 创建一个新的 WinUI 3 桌面应用程序。在 Visual Studio 中初始化项目后,该项目位于 .NET 6 上。我将 .csproj 文件的 TargetFramework 从 更改为net6.0-windows10.0.19041.0,net8.0-windows10.0.19041.0但弹出此错误。如何使用 .NET 8 解决此问题?

错误:

NETSDK1083: The specified RuntimeIdentifier "win10-x86" is not recognized
NETSDK1083: The specified RuntimeIdentifier "win10-x64" is not recognized
NETSDK1083: The specified RuntimeIdentifier "win10-arm64" is not recognized
Run Code Online (Sandbox Code Playgroud)

我的.csproj文件:

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
  <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
  <RootNamespace>SudokuEngineApp</RootNamespace>
  <ApplicationManifest>app.manifest</ApplicationManifest>
  <Platforms>x86;x64;ARM64</Platforms>
  <RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
  <PublishProfile>win10-$(Platform).pubxml</PublishProfile>
  <UseWinUI>true</UseWinUI>
  <EnableMsixTooling>true</EnableMsixTooling>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我尝试过 .NET 7 并且它有效:

<TargetFramework>net7.0-windows10.0.19041.0</TargetFramework>

而 .NET 8 则不然。

.net xaml csproj winui-3 .net-8.0

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

C语言中浮点数的舍入方式 当浮点数尾数超过23位时如何对超出部分进行舍入

在计算中

123456789 (1 110 1011 0111 1001 1010 0010 101) 
      +20 (                            10 100)
Run Code Online (Sandbox Code Playgroud)

C 中的结果是 123456816 (1 110 1011 0111 1001 1010 0110 000) 我发现它似乎被四舍五入,但在计算中

123456785 (1 110 1011 0111 1001 1010 0010 001)
      +20 (                            10 100) 
Run Code Online (Sandbox Code Playgroud)

(结果是123456800)此时看起来像是向下舍入,两者合在一起看起来像是四舍五入

但

123456809 (1 110 1011 0111 1001 1010 0101 001) 
Run Code Online (Sandbox Code Playgroud)

再说一遍,123456808 (1 110 1011 0111 1001 1010 0101 000)没有意义

我尝试在Google上找到答案,并总结了网友的意见,但仍然与上面的结果不符,所以我认为可能有一些细节我不知道,所以我希望你能帮助我弄清楚这个问题


添加代码来演示:

#include <stdio.h>

int main(void) {
    float x = 123456789.f;
    float y = 20.f;
    
    long m = 123456789L; …
Run Code Online (Sandbox Code Playgroud)

c floating-point

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

在运行时设置为自动时确定 Blazor 中的当前渲染模式

我正在处理 Blazor 项目,其中组件的渲染模式设置为Auto. 根据Blazor 文档,这意味着该组件最初是使用 Blazor 服务器托管模型在服务器端呈现并具有交互性。.NET 运行时和应用程序包在后台下载到客户端并缓存以供将来访问时使用。

以下是我的问题的一些背景信息:我有一个内部服务器 API,无法在服务器外部访问,也无法从客户端浏览器调用。我想在Auto模式组件内调用该 API。如果它在服务器模式下运行,则调用将成功,因为它将起作用。但如果是 WebAssembly 模式,HTTP 请求将从客户端发送,客户端无法访问该 URL:

@page "/http"
@inject HttpClient Http
@rendermode InteractiveAuto

<h3>HTTP Response</h3>

<p>@_response</p>

@code {
    private string _response = string.Empty;

    protected override async Task OnInitializedAsync ()
    {
        var response = await Http.GetAsync ("http://api.internalhost");
        _response = await response.Content.ReadAsStringAsync ();
    }
}

Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:当渲染模式设置为 时,如何在运行时确定组件是在 WebAssembly 还是服务器模式下渲染Auto?

先感谢您!

c# asp.net blazor

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

如何在 ASP.NET Core 8 中获取键控服务字典

在 ASP.NET Core 8 中,我们可以选择使用密钥注册服务。通常,注入IEnumerable<ICustom>构造函数将返回ICustom.

但是,我如何解析服务的字典及其密钥?例如,IDictionary<string, ICustom>这样我就可以访问该服务及其密钥?

c# dependency-injection asp.net-core asp.net-core-8

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

这个char数组是存储在栈上的吗?

在下面的:

void frequentlyCalledFunction()
{
    char str[] = "Hello this is a really long string, imagine it's even longer"; // STORED ON STACK 

    printf("%s", str);
}

int main()
{
 
    frequentlyCalledFunction();
}
Run Code Online (Sandbox Code Playgroud)

字符串文字必须保存在程序的 .data 段中,并且由于该 char 数组位于堆栈上(我很确定),因此程序必须将该字符串从 .data 段复制到堆栈每次调用该函数时,对吗?

c c++

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