RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-361876

Denver Toha's questions

Martin Hope
Denver Toha
Asked: 2023-12-24 19:05:31 +0000 UTC

有没有办法设置 std::thread 的堆栈大小?

  • 6

我需要指定 的线程堆栈大小std::thread。不幸的是,我不能使用boost::thread. std::thread通过在系统中实现pthread。也许您可以在编译器选项或类似的选项中指定特定文件的线程堆栈大小?

c++
  • 1 个回答
  • 74 Views
Martin Hope
Denver Toha
Asked: 2023-12-08 19:50:55 +0000 UTC

为什么编译器不能自动推断类模板的类型?

  • 7

有这段代码

template <typename T, typename U>
class A
{
public:
    explicit A(U v) : field1{}, field2(v) {}

private:
    T field1;
    U field2;
};

int main()
{
    A<int> b("");
}

由 clang14、17 标准收集。我收到编译错误:

类模板“A”的模板参数太少

为什么编译器不自动推断类型?

c++
  • 1 个回答
  • 67 Views
Martin Hope
Denver Toha
Asked: 2023-09-24 01:50:35 +0000 UTC

是否可以将自定义 systemd 守护进程嵌入到 ubuntu 设置图形 shell 中?

  • 7

是否可以将从 systeamd 启动的您自己的守护进程嵌入到 ubuntu 的图形设置 shell 中。有这个的api吗?与内置 NetworkManager 的方式类似

Ubuntu 版本 22.04

linux
  • 1 个回答
  • 39 Views
Martin Hope
Denver Toha
Asked: 2023-06-09 20:37:32 +0000 UTC

为什么不能创建一个 constexpr std::error_category,因为这个类有一个 constexpr 构造函数?

  • 5

std::error_category 有一个 constexpr 构造函数,但它是一个抽象类。因此,它的孩子不能由 constexpr 创建。那么为什么要使用 error_category constexpr 构造函数呢?

c++
  • 2 个回答
  • 45 Views
Martin Hope
Denver Toha
Asked: 2023-03-10 20:07:37 +0000 UTC

什么时候初始化类的静态字段?如果在初始化静态字段时抛出异常怎么办?

  • 5

这段代码会在 main() 运行之前运行吗?如果m_filed初始化过程中出现异常怎么办?什么时候调用 m_field 析构函数?

class Example {

private:
static int m_field;
}

int Example::m_field = 0;
c++
  • 1 个回答
  • 39 Views
Martin Hope
Denver Toha
Asked: 2023-03-09 21:07:46 +0000 UTC

如何处理参数包?

  • 6

我想从参数包中填充结构对象,怎么办?也许你可以为此使用 boost::mpl

struct Operation {
    int (*ops1)();
    int (*ops2)(int);
};

template<auto... Ops>
class Example {
public:
    constexpr Example() {
        /* 
         * 
         * Тут нужно отсортировать Ops и заполнить m_ops
         * если в аргументе шаблона есть указатель на функцию неподходящего типа - ошибка компиляции
         *
         * */
    }
private:
    Operation m_ops;
};
c++
  • 1 个回答
  • 35 Views
Martin Hope
Denver Toha
Asked: 2022-09-11 22:19:09 +0000 UTC

是否可以根据类模板的类型删除或添加方法声明?

  • 1

是否可以根据类模板的类型删除或添加方法声明?我知道可以通过这种方式选择重载,但是甚至可以删除不适合模板类型的方法吗?与概念或sfinae。我不想让整个班级专门为此

c++
  • 0 个回答
  • 0 Views
Martin Hope
Denver Toha
Asked: 2022-09-09 23:03:29 +0000 UTC

编译器可以内联实现在 cpp 文件中的函数吗?

  • 0

编译器可以内联实现在 cpp 文件中的函数吗?在声明站点实现的函数和方法默认是内联的,并且由编译器自行决定构建,但是编译器是否限制将实现放在 cpp 文件中?

c++
  • 0 个回答
  • 0 Views
Martin Hope
Denver Toha
Asked: 2022-08-25 00:34:40 +0000 UTC

是否可以将 boost::intrusive::list 插入 boost::intrusive::list 中?

  • 1

是否可以将 boost::intrusive::list 插入 boost::intrusive::list ?我需要合并 2 个列表,没有任何逻辑和排序,显然这可以通过简单地将 list2 的第一个节点插入 list1 在 O(1) 中完成。唯一的问题是如何做到这一点,在库中我只找到了合并方法,该方法在 O(N) 中有效。是否可以将列表插入列表中?

c++
  • 1 个回答
  • 30 Views
Martin Hope
Denver Toha
Asked: 2022-08-22 01:21:27 +0000 UTC

原子写入和读取操作与加载/存储操作有何不同?

  • 3

原子写入和读取操作与加载/存储操作有何不同?我一直认为这是同一件事,但现在我有点困惑。

在查看了在标准原子上实现自旋锁的示例后,我感到困惑

struct tas_lock {
  std::atomic<bool> lock_ = {false};

  void lock() { while(lock_.exchange(true, std::memory_order_acquire)); }

  void unlock() { lock_.store(false, std::memory_order_release); }
};

文件说,这就是混乱所在

memory_order_acquire 具有此内存顺序的加载操作对受影响的内存位置执行获取操作:在此加载之前,当前线程中的任何读取或写入都不能重新排序。释放相同原子变量的其他线程中的所有写入在当前线程中可见(请参阅下面的 Release-Acquire 顺序)

我的意思是,获取是一个加载操作(在我对阅读的理解中),它保证了原子性并且任何读写操作都不会在它之前重新排序。

memory_order_release 具有此内存顺序的存储操作执行释放操作:当前线程中的任何读取或写入都不能在此存储之后重新排序。当前线程中的所有写入在获取相同原子变量的其他线程中可见(请参阅下面的 Release-Acquire 排序),并且将依赖项携带到原子变量中的写入在消耗相同原子的其他线程中变得可见(请参阅 Release-Consume下面订购)。

一个解除分配操作,以确保没有读/写操作可以在它之后重新排序。

但是在上面的例子中,写操作是用asquire保证的(在我的理解中,交换是读+写)

while(lock_.exchange(true, std::memory_order_acquire));

鉴于上述情况,加载/释放和读/写的概念不是一回事,它们有何不同?

PS:描述 std::atomic_flag 的文档中的措辞也具有误导性

std::atomic_flag 是一个原子布尔类型。与 std::atomic 的所有特化不同,它保证是无锁的。与 std::atomic 不同,std::atomic_flag 不提供加载或存储操作。

这里写到 atomic_flag 不提供加载/存储操作,当使用 asq / release 保证的相同文档的示例中描述类似的自旋锁时,这不是很清楚这意味着什么

c++ многопоточность
  • 1 个回答
  • 68 Views
Martin Hope
Denver Toha
Asked: 2022-08-21 18:41:58 +0000 UTC

如何仅将函子的引用传递给 std::functional 以便它不在堆上分配内存?

  • 0

我想使用 std::function 作为 C 函数指针。据我了解,在将仿函数传递给 std:: 函数构造函数的情况下,该仿函数会从调用者的堆栈复制/移动到堆中。我想避免这种动态内存分配并将仿函数作为函数指针传递,我该怎么做?

struct test {
    void operator()() {
        std::cout << "a" << std::endl;
    }

    ~test() {
        std::cout << "destruct" << std::endl;
    }
};


int main() {
    auto t = test{};
    std::function<void()> a = t;
    a();
}

该示例显示测试类析构函数被调用了 2 次。

c++ функции
  • 1 个回答
  • 47 Views
Martin Hope
Denver Toha
Asked: 2022-08-13 18:25:01 +0000 UTC

如何正确重载运算符<=> c++20

  • 3

我正在尝试重载 <=> 运算符,但以下代码会引发编译错误

错误:'operator==' 不匹配(操作数类型为 'example' 和 'example')

struct example {
    int a{0};
    int b{0};
    auto operator <=>(const example& other) const{
        return a<=>other.a;
    }
};

int main() {
    example a{1, 2};
    example b{1, 3};
    a == b;
    return 0;
}

同时,如果我写 auto operator <=>(const example& other) const = default; ,不会有编译错误。但是我不能写默认值,因为我需要稍微修改一下逻辑。<> 运算符起作用。

c++ перегрузка-операторов
  • 1 个回答
  • 50 Views
Martin Hope
Denver Toha
Asked: 2022-07-29 02:33:46 +0000 UTC

如何使用概念检查模板中是否存在别名?

  • -1

如何在 C++20 概念中检查模板类型中是否存在别名?

struct example {
    using alias_t = int;
};

template<class T>
concept example_concept = requires{
        T::alias_t;
};

这是一个示例,如果您将示例作为模板参数 ala 传递,则template<example_concept T>代码将无法编译。如何进行此项检查?

更新

template<class T>
concept future_traits = requires {
    typename T::initial_awaitable_t;
    typename T::await_awaitable_t;
    typename T::final_awaitable_t;
};


template<class return_type>
struct default_traits {
    using initial_awaitable_t = std::suspend_always;
    using await_awaitable_t   = detail::symmetrical_awaitable<detail::promise<return_type, default_traits>>;
    using final_awaitable_t   = detail::final_awaitable;
};
c++ шаблоны-с++
  • 1 个回答
  • 35 Views
Martin Hope
Denver Toha
Asked: 2022-07-16 21:39:31 +0000 UTC

如何找出goroutine当前正在执行的线程的id?

  • 0

如何找出goroutine当前正在执行的线程的id?

golang
  • 1 个回答
  • 53 Views
Martin Hope
Denver Toha
Asked: 2022-08-08 21:18:54 +0000 UTC

在内核模块的字符设备上实现 open/write/read... 系统调用时,如何获取进行系统调用的进程的 pid?

  • 0

在内核模块的字符设备上实现 open/write/read... 系统调用时,如何获取进行系统调用的进程的 pid?

ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *);

这是 file_operations 结构中的写签名。如何从传递的参数中获取进行系统调用的进程的pid?

linux c
  • 1 个回答
  • 27 Views
Martin Hope
Denver Toha
Asked: 2022-08-03 04:25:18 +0000 UTC

在宏内部创建结构时,如何根据传递给宏的值生成其名称?

  • 0
#define EXAMPLE_MACRO(val_type, postfix) \
    struct example_struct_postfix {      \
        val_type val;                                     \
    }; 

EXAMPLE_MACRO(int, name);

我想在这个例子中,生成的是example_struct_name,但是生成的是example_struct_postfix

c gcc
  • 2 个回答
  • 21 Views
Martin Hope
Denver Toha
Asked: 2022-07-15 00:51:26 +0000 UTC

如何检查结构字段是否在golang中实现了某个接口?

  • 0

如何检查结构字段是否在golang中实现了某个接口?可以通过反射实现吗?这是一个例子,如何检查Test结构的字段是否实现了Example接口?

type Example interface {
    String() string
}

type ExampleImpl struct {
    
}

func (e ExampleImpl) String() string {
    return "Exemple"
}

type Test struct {
    e ExampleImpl
}
golang рефлексия
  • 2 个回答
  • 124 Views
Martin Hope
Denver Toha
Asked: 2022-07-07 19:15:15 +0000 UTC

如何编写compile_time排序?

  • 1

最近我需要编写一个编译时排序。由于我们项目使用c++17,std::sort不是constexpr,20标准还没有完全支持。

我决定分享我的算法,如果他们改进它或告诉我错误,我会很高兴

c++ шаблоны-с++
  • 2 个回答
  • 52 Views
Martin Hope
Denver Toha
Asked: 2022-07-06 19:00:42 +0000 UTC

如何从参数包中获取第一个参数的类型?

  • 0

这是功能

template<class... Args>
void f(Args... args) {
    std::array<int, sizeof...(args)> test = {args...};
}

我希望数组具有参数包中第一个参数的类型。我怎样才能得到这种类型?

c++ шаблоны-с++
  • 1 个回答
  • 40 Views
Martin Hope
Denver Toha
Asked: 2022-07-05 01:15:01 +0000 UTC

如何将一对用作具有可变数量参数的模板?

  • -1

如果要将可变数量的枚举/值对传递给函数,该怎么做?像这样试过

template<typename EnumT, typename CharT, std::pair<EnumT, CharT> KeyValueT>
constexpr auto makeStringsMap(KeyValueT... kv)
{

}

所以

template<typename... KeyValueT>
constexpr auto makeStringsMap(KeyValueT... kv)
{
    static_assert(std::is_enum_v<decltype(std::get<0>(kv))>);
}

在这两种情况下,编译器都在运行

c++ шаблоны-с++
  • 1 个回答
  • 49 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5