C++ 线程级常量

标签 c++ multithreading

有没有一种方法可以在 C++ 中模拟线程级常量?例如,如果我必须调用模板函数,那么我需要提及常量作为模板级参数吗?我可以将静态常量变量用于模板元编程,但它们是进程级常量。

我知道,我问的问题很可能是“否”。只是想问这个以利用非常罕见的概率 :))

根据要求,我发布了示例代码。在这里我需要跟踪查询,如果它来自一个特定的线程。我假设,如果我将其创建为我的第一个线程,那么它将获得线程 ID 1。

template<ACE_INT32 ThreadId>
bool enquire_presence( Manager* man)
{
      return check(man);
}


template<>
bool enquire_presence<1>( Manager* man )
{
      track_enquiry(man);
      return check(man);
}

谢谢, 悟空。

最佳答案

模板是编译时构造,线程是运行时构造 - 没有办法让模板特定于线程。

关于C++ 线程级常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435385/

相关文章:

c++ - 可变参数模板方法来创建对象

c++ - 使用-static 时如何使gcc/ld 遍历多个 '-l library'?

c++ - constexpr 数组和 std::initializer_list

c - 如何从父线程中杀死子线程 - C

c++ - 虚类成员函数的多态/继承问题

c++ - C++ 构造函数的默认参数

c# - 传递参数并从线程检索返回结果

C#:在并行线程中设置 HttpContext.Current 有什么问题吗?

c - pthread_create 期间大小为 8 的无效写入

javascript - Digger 游戏中的敌人需要自行移动,代码被破坏,我不知道为什么