问题列表 - 第318062页

捆绑执行 jekyll 服务无法在本地工作

我点击此链接在 Github 上设置我的个人网站。网站已经部署成功,现在可以访问了。

我的 ruby​​ 版本是3.3.0,我的 gem 版本是3.5.4。我还添加了webrick此链接中提到的内容。

bundle install但是,运行和后我无法在本地构建它bundle exec jekyll serve。错误是

jekyll 3.9.3 | Error:  undefined method `[]' for nil
/usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/logger.rb:384:in `level': undefined method `[]' for nil (NoMethodError)

    @level_override[Fiber.current] || @level
                   ^^^^^^^^^^^^^^^
    from /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-3.9.3/lib/jekyll/log_adapter.rb:43:in `adjust_verbosity'
    from /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-3.9.3/lib/jekyll/configuration.rb:157:in `config_files'
    from /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-3.9.3/lib/jekyll.rb:113:in `configuration'
    from /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-3.9.3/lib/jekyll/command.rb:43:in `configuration_from_options'
    from /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-3.9.3/lib/jekyll/commands/serve.rb:89:in `start'
    from /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-3.9.3/lib/jekyll/commands/serve.rb:75:in `block (2 levels) in init_with_program'
    from /usr/local/lib/ruby/gems/3.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
    from /usr/local/lib/ruby/gems/3.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
    from /usr/local/lib/ruby/gems/3.3.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute' …
Run Code Online (Sandbox Code Playgroud)

ruby jekyll github-pages

3
推荐指数
2
解决办法
383
查看次数

对超出范围的堆栈分配变量的引用

根据我的理解,堆栈分配的变量在超出范围时将被丢弃。然而,返回对堆栈上分配的变量的引用并随后访问声明变量的范围之外的这些引用的概念让我感到困惑。他们不会指向现在已被释放的内存吗?我能想到的唯一可能性是内存被复制到引用指向的位置。

这是我尝试打印 4 的示例,即使它引用的对象在技术上超出了范围。

#include <iostream>

class A {
    
    public:
        int x;
        A(int a) : x(a) {}
};


A& ref_func() {
    A obj {4};
    
    A& ret_val = obj;
    
    return ret_val;
    
}

int main()
{
    A& ret = ref_func();
    
    // shouldn't the object that ref_func is returning a reference to be deallocated?
    // why is it able to be accessed like normal below?

    std::cout << ret.x << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是 C 语言中的相同示例,打印 5。

#include <stdio.h>

int* ref_func() {
    
    int …
Run Code Online (Sandbox Code Playgroud)

c c++ memory pointers memory-management

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

包中 C 函数的 Makevars

我需要帮助Makevars为包含 C 函数的包编写文件,这些函数将使用 .C(...) 进行调用

该目录包含

Makevars (empty at the moment)
midicsvR-package.c (automatically generated)
c_csvmidi.c (contains one of the C functions to be called with .C())
c_midicsv.c (contains another one of the C functions to be called with .C())

midio.c            
csv.c

midio.h
csv.h              
midifile.h         
types.h
version.h
Run Code Online (Sandbox Code Playgroud)

我可以编译so文件,然后像这样用.C()调用

R CMD SHLIB -o c_midicsv.so c_midicsv.c midio.c csv.c

R CMD SHLIB -o c_csvmidi.so c_csvmidi.c midio.c csv.c

这些函数在 R 函数中使用 .C() 调用时起作用。我需要写什么Makevars在软件包安装时自动发生这种情况。

我的问题是midio.c和csv.c包含c_midicsv.c和 的支持函数 …

c r

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

C++ 模板中的 auto&amp;&amp; 与 constrained auto&amp;&amp;

MSVC /std:c++20 报告约束自动&& 的错误如下所示

#include<concepts>

class Base { public: Base() {} };
class Derived : public Base { public: Derived() {} };

template<typename T> concept con = std::is_class_v<T>
&& std::derived_from<T, Base>;
void f(con auto&& x) {}

int main()
{
   f(Derived()); // r value: Ok

   Derived d;
   f(d); // l-value: no matching overloaded function found
}
Run Code Online (Sandbox Code Playgroud)

从“con auto&&”中删除“con”,上面的代码编译没有错误。我想了解为什么向 auto&& 模板参数添加约束会将其从“通用引用”更改为仅 R 值引用。此行为符合 C++20 标准还是 MSVC 独有的行为?

在互联网上搜索 C++ 论坛,没有找到任何解释这种特定语言用例的内容。然而,可能有一些我错过或没有注意到的事情。

c++ forwarding-reference c++20

4
推荐指数
2
解决办法
89
查看次数

COBOL问题(编译和执行)

编译 COBOL 程序时,我收到编译器发出的错误。下面是编译器输出,后面是源代码。

错误是:

==000061==> IGYPS2143-S 需要一个记录名称,但发现“BLANK-LINE”。该声明被丢弃。

编译器输出:

                   J E S 2  J O B  L O G  --  S Y S T E M  8 5 6 1  --  N O D E  S V S C J E S 2
 

  LineID  PL SL  ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7-|--+----8 Map and Cross Reference
  000001                identification division.
  000002                program-id. A1CLIST.
  000003                date-written. 1/19/2024.
  000004                author. Francisco Gonzalez Moreno.
  000005               *Description: COBOL program to create a contact list.
  000006               *
  000007                environment division.
  000008                configuration …
Run Code Online (Sandbox Code Playgroud)

cobol mainframe

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

是否有像 Sleep() 这样的 Windows API 函数与 MessageBoxA() 一样工作?

当我MessageBoxA()在函数中使用时,它会暂停该函数,但主程序仍在运行。当我尝试使用 时Sleep(),它会暂停整个程序,而不仅仅是它所在的函数。为什么会发生这种情况?

是否有一个 Windows API 函数,其工作方式类似于Sleep()但工作方式类似MessageBoxA(),仅暂停其所在的函数,而不是整个程序而不显示对话框?

我尝试使用Sleep(),但想找到另一个像MessageBoxA(). 我也尝试过WaitMessage(),但效果不太好。

c++ winapi function pause

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

如何计算多个变量的总计百分比?

students <- data.frame( names = c( "Bill", "Stacey", "Fred", "Jane", "Sarah" ), 
                        gender = c( "M", "F", "M", "F", "F" ),
                        age = c( "10-12", "10-12", "13-15", "7-9", "16-18" ),
                        stringsAsFactors = FALSE )
Run Code Online (Sandbox Code Playgroud)

我已将下面的函数用于一个变量,但是它不适用于多个变量。

library(dplyr)
result_dplyr <- students %>%
group_by(gender) %>%
summarise(per_to_tot = n() / nrow(student) * 100)
print(result_dplyr)
Run Code Online (Sandbox Code Playgroud)

所需的输出如下。

#    gender per to tot
# 1:      M 40
# 2:      F 60
#    age  
# 1:     7-9   20
# 2:     10-12 40
# 3:     13-15 20
# 4: …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

当源 = 目标、就地时,AVX512 自动向量化 C++ 矩阵向量函数要慢得多

我尝试编写一些函数来使用单个矩阵和源向量数组来执行矩阵向量乘法。我曾经用 C++ 编写过这些函数,并在 x86 AVX512 汇编中编写过一次,以将性能与英特尔 VTune Profiler 进行比较。当使用源向量数组作为目标数组时,汇编变体的执行速度比 C++ 对应版本快 3.5 倍到 10x\xc2\xa0,但是当使用不同的源和目标数组时,汇编变体的性能几乎不比 C++ 对应版本更好,实现几乎相同的性能...有时甚至更糟。

\n

我无法理解的另一件事是,为什么在使用不同的源和目标数组时,C++ 对应项甚至可以达到与汇编变体接近相同或更好的性能水平,即使汇编代码要短得多并且也根据静态分析工具 uica 和 llvm-mca 速度提高数倍。uica.uops.info

\n

我不想让这篇文章变得太长,所以我只发布执行 mat4-vec4 乘法的函数的代码。

\n

这是汇编变体的代码,它假设矩阵要转置:

\n
alignas(64) uint32_t mat4_mul_vec4_avx512_vpermps_index[64]{    0, 0, 0, 0, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12, 12,\n                                                            1, 1, 1, 1, 5, 5, 5, 5, 9, 9, 9, 9, 13, 13, 13, 13,\n                                                            2, 2, 2, 2, 6, 6, 6, 6, 10, 10, 10, 10, 14, 14, …
Run Code Online (Sandbox Code Playgroud)

c++ assembly x86-64 auto-vectorization avx512

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

在解组和解析动态类型时,还有其他方法可以重构/重用结构吗?

我期望 JSON 有效负载具有一些不明确类型的字段。确切地说,我需要处理单个对象或对象切片。

单个对象的示例:

{
    "service": {
        "serviceName": "serviceName",
        "serviceAttribute": {
            "name": "name",
            "value": "value"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

对象切片示例:

{
    "service": [
        {
            "serviceName":"serviceName",
            "serviceAttribute": [
                {
                    "name":"name",
                    "value":"value"
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

正如您在此处看到的,字段服务和serviceAttribute可以是括在大括号中的单个对象,也可以是括在方括号和大括号中的对象的集合。

我预计返回的数据模型与第二个示例完全相同:

{
    "service": [
        {
            "serviceName":"serviceName",
            "serviceAttribute": [
                {
                    "name":"name",
                    "value":"value"
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的目标是将不明确的 JSON 有效负载清理为具有具体类型的对象,以便于在代码中进一步处理,而不需要在代码中的任何位置解析类型。我希望所有解析在一开始就完成一次,这样我就不需要在每次需要使用它们时都麻烦地解析像json.RawMessage这样的类型。

我的现实生活案例涉及更复杂的深度嵌套数据结构。我希望保持当前的结构尽可能简洁,重复次数尽可能少。正如您在下面提供的示例中看到的那样,我正在复制 2 个结构,我只是想知道这是否是处理该问题的最干净的方法。

我已经准备了一个可以按预期工作并满足我上面所述的要求的代码。 Go Playground 有人可以指导我这里可以改进的地方或者指出我可能做错了什么吗?所采取的方法通常是解决我的案件的正确方法吗?

所有帮助将不胜感激,谢谢。

我尝试通过与 ChatGPT 聊天来寻找解决方案,并浏览网页以查找类似的用例,似乎有大量关于仅处理动态类型的资源,但不一定更适合我的确切用例的上下文。

完整的代码也附在这里。

{
    "service": {
        "serviceName": "serviceName",
        "serviceAttribute": {
            "name": "name", …
Run Code Online (Sandbox Code Playgroud)

go

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

如何将 char** 传递给需要 const char 指针的 const 数组的函数

如下所示,我想将 定义的变量以char **x只读方式传递给函数。

\n

一本参考书显示了线性搜索源代码,该代码通过将变量作为 定义的临时参数int *x传递给函数来对定义的变量执行线性搜索。searchconst int a[]

\n

所以我想到了一个想法,如果是字符串呢?然后我写了下面的代码。

\n

gcc、clang 和 MSVC 分析可以在这里找到。

\n
// Linear Search\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\nint scanf_s(const char *format ,...); // for gcc and clang environment\n// int search(const char **a, int n, char *key) {       //\xe2\x80\xbb[1]not allowed in c lang specification\xe2\x87\x92NG\n// int search(char * const *a, int n, char *key) {      //\xe2\x80\xbb[2]\xe2\x87\x92NG\n// int search(const char * const *a, int n, char *key) {    //\xe2\x80\xbb[3]warning occured …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

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