问题列表 - 第317995页

C++ 重载函数的地址

我有以下小的 C++ 代码示例,但我无法弄清楚为什么编译器以这种方式工作,尽管我花了很多时间研究 cppreference。我将不胜感激任何解释!神箭

#include <type_traits>

template<typename Tp>
struct depend_type
{
  constexpr static bool false_ = false;
};

template<typename Tp>
struct cont
{
  using x = void;

  static_assert(std::is_same_v<Tp, int>);
  // if uncomment, will be complie error -> 'cont<Tp>::x' instantiated with 'void (*p)(int) = func;'
//   static_assert(depend_type<Tp>::false_); 
};

template<typename Tp>
void func(Tp)
{
}

template<typename Tp>
typename cont<Tp>::x func(Tp);

int main(int /* argc */, char * /*argv*/[])
{
//  func(1); is ambiguous call
  void (*p)(int) = func; // why is …
Run Code Online (Sandbox Code Playgroud)

c++ function-templates overload-resolution template-meta-programming

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

为什么使用 dict 时 numba 慢 25%

我对使用 dict 时 numba 的性能感兴趣。我做了以下实验:

\n
from numpy.random import randint\nimport numba as nb\n\n@nb.njit\ndef foo_numba(a, b, c):\n    N = 100**2\n    d = {}\n    for i in range(N):\n        d[(randint(N), randint(N), randint(N))] = (a, b, c)\n    return d\n\n\n@nb.njit\ndef test_numba(numba_dict):\n    s = 0\n    for k in numba_dict:\n        s += numba_dict[k][2]\n    return s\n\n\n\ndef foo(a, b, c):\n    N = 100**2\n    d = {}\n    for i in range(N):\n        d[(randint(N), randint(N), randint(N))] = (a, b, c)\n    return d\n\n\n\ndef test(numba_dict):\n    s = 0\n    for k in numba_dict:\n        s += …
Run Code Online (Sandbox Code Playgroud)

python numba

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

C中指向数组的指针的内存分配?

#include <stdio.h>
int main()
{
 int (*ptr) [5];
 printf ("%lu\n" , sizeof (ptr));
 printf ("%lu\n" , sizeof (*ptr));
}
Run Code Online (Sandbox Code Playgroud)

我使用的是64位系统。当我在 gcc 编译器中运行此代码时,它会生成输出8 and 20。我的问题是为此分配多少字节pointer to an array?是 8 或 20,为什么?

c arrays printf sizeof pointer-to-array

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

Mockgen 尝试使用它自动创建mock_interface 时出错

我正在 Mockgen 的帮助下制作mock_interface.go 文件,但我不断收到此错误,“加载输入失败:解析源文件接口失败:打开接口:系统找不到指定的文件。”

我正在运行的命令是“mockgen -source=interface.go -destination=mock_interface.go -package=store”。

我的项目位于我的 D 盘中,我的 GOPATH 是:“ C:\Users\rider\go ”。

我还尝试在同一目录中运行我的项目,但这没有帮助。我怎样才能让它运行?

我将这个“ https://github.com/gofr-dev/gofr/blob/development/examples/using-mysql/store/mock_interface.go ”作为参考,并希望生成相同的。

go

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

如何使用 go-yaml 将整数值编组为十六进制?

我有一个带有整数字段的结构,其以十六进制形式表示对人类有意义。例如,将此字段设为供应商 ID字段。

我想将此数据保存到 YAML 文件中以进行手动编辑,然后从文件中加载它。据我了解,YAML 本身中数字的十六进制表示没有问题,但是go-yaml(我使用v3)以十进制形式对整数进行编码,并且我还没有找到一种正常的方法来使其以十六进制形式保存它们。

让我们以以下代码为起点:

import (
    //...
    "gopkg.in/yaml.v3"
)

type DeviceInfo struct {
    VendorId uint32 `yaml:"vendorid"`
}

func main() {
    deviceInfo := DeviceInfo{VendorId: 0xdeadbeef}

    yml, err := yaml.Marshal(deviceInfo)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(string(yml))
}
Run Code Online (Sandbox Code Playgroud)

此代码生成带有十进制值的 YAML:

vendorid: 3735928559
Run Code Online (Sandbox Code Playgroud)

接下来,允许您为自己的类型go-yaml创建自定义封送拆收器。我这样做了(我故意省略了格式字符串0x中的前缀fmt.Sprintf()):

type Uint32Hex uint32

func (U Uint32Hex) MarshalYAML() (interface{}, error) {
    return fmt.Sprintf("%x", U), nil
}

type DeviceInfo struct {
    VendorId Uint32Hex …
Run Code Online (Sandbox Code Playgroud)

yaml go

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

Next.js 13+ 如何在开发过程中测试 global-error.tsx

我将 global-error.tsx 文件添加到 Next.js 项目 v 13.4.16。我想知道如何模拟它以查看开发过程中 UI 中的样子。

我将 global-error.tsx 文件与 app/[locale] 目录中的根 layout.tsx 文件保持在同一级别(因为我使用的是 next-intl)。

有什么办法可以测试一下吗?

我尝试在根布局文件中抛出错误,但似乎没有捕获此错误。我看到的不是全局错误页面,而是 Next.js 错误指示器。

在此输入图像描述

这是我的全局错误的样子:

"use client";
import * as React from "react";
import { defaultLanguage } from "@/app/intl";
import { Layout } from "@/app/[locale]/home/HeroSection/Layout";
import { Navbar } from "@/app/[locale]/components/Navbar";
import Footer from "@/app/[locale]/components/Footer/Footer";
import { Box } from "@mui/material";
import Link from "next/link";
import { Button } from "@/app/[locale]/components/Button";
import Paragraph from "@/app/[locale]/components/ResponsiveText/Paragraph";

type Props = {
  error: Error & { …
Run Code Online (Sandbox Code Playgroud)

error-handling next.js13

5
推荐指数
0
解决办法
141
查看次数

如何在 Haskell 中解析 JSON,其中字段名称可以是多个值之一,但应转换为单个 Haskell 类型?

假设我有以下 JSON 值。

{
  "fieldName1": 5,
  "value1": "Hello"
}
Run Code Online (Sandbox Code Playgroud)

和

{
  "fieldName2": 7,
  "value1": "Welcome"
}
Run Code Online (Sandbox Code Playgroud)

我在 Haskell 中有以下类型。

data Greeting 
  = Greeting
      {
        count :: Int,
        name :: Text
      }
  deriving (Generic, Show, Eq)
Run Code Online (Sandbox Code Playgroud)

如何将此 JSON 解析为 Haskell,其中fieldName1或fieldName2值应解析为count值?

我尝试通过执行如下所示的操作来解决此问题。

instance FromJSON Greeting where
  parseJSON = withObject "Greeting" $ \obj -> do
    count1 <- obj .:? "fieldName1"
    count2 <- obj .:? "fieldName2"
    name <- obj .: "value1"
    count <-
      case (count1, count2) of
        (Just …
Run Code Online (Sandbox Code Playgroud)

parsing json haskell aeson

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

C语言新手;strcat 有意外的结果

我正在将脚本从 Bash 转换为 C 以进行工作。我是 C 语言新手,需要学习很多东西。我有正在调试的代码。包含从 substr 构建的内容的变量的 printf 输出意外结果。

作为一个学习理念:

#include <stdio.h>
#include <string.h>

int main() {
    char one[5] = "abcde";
    char two[3] = "fgh";
    char three[8] = "ijklmnop";

    int size = strlen( one ) + strlen( two ) + strlen( three );
    char str[ size ];

    strcpy( str, one );
    strcat( str, "_" );
    strcat( str, two );
    strcat( str, "_" );
    strcat( str, three);

    printf( "string is: %s\n", str );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果如下:

string is: …
Run Code Online (Sandbox Code Playgroud)

c

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

如何在 TypeScript 和 Node.js 中启用 Object.groupBy()

我在 Node.js v18.17.1 和 TypeScript v5 上运行。

我听说了新的 JavaScript 方法Object.groupBy()。

const inventory = [
  { name: "asparagus", type: "vegetables", quantity: 5 },
  { name: "bananas", type: "fruit", quantity: 0 },
  { name: "goat", type: "meat", quantity: 23 },
  { name: "cherries", type: "fruit", quantity: 5 },
  { name: "fish", type: "meat", quantity: 22 },
];

const result = Object.groupBy(inventory, ({ type }) => type);
console.log(result)
Run Code Online (Sandbox Code Playgroud)

当我编写代码时Object.groupBy(),出现以下 TypeScript 错误:

Property 'groupBy' does not exist on type 'ObjectConstructor'.ts(2339) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript

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

为什么我的 haskell 程序使用“transpose”会出现空间泄漏

我的 Haskell 程序中存在空间泄漏,我可以将其查明为一个最小的示例,如下所示。我希望以下代码(尽管不会终止,但我不在乎)在常量内存中运行,但事实并非如此:

head . filter (const False) $ (transpose [[1..]])
Run Code Online (Sandbox Code Playgroud)

whilehead . filter (const False) $ [1..]确实在恒定内存中运行。

所以我猜这一定与在无限列表上使用“转置”有关。忽略更复杂的基础库实现,如果我们定义转置transpose xss = map head xss : transpose (map tail xss),为什么会出现空间泄漏?map head xss我的假设是垃圾收集器可以释放以前在函数的每个步骤中消耗的内存filter。我想这map tail xss会以某种方式阻止这种情况发生?!无论如何,我可以添加某种严格性注释或类似的注释,transpose以便该简单的示例确实在恒定内存中运行吗?

haskell lazy-evaluation space-leak

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