草庐IT

ACCOUNT_TYPE_LOCAL

全部标签

c++ - 尽管包含 <typeinfo> ,但 Clang 拒绝 type_info 为不完整

我不明白为什么Clang会拒绝以下代码:#include#includeconstchar*get_name(conststd::exception_ptreptr){returneptr.__cxa_exception_type()->name();}intmain(){}GCC没问题,但是Clang提示type_info是一个不完整的类型:$g++-4.7-std=c++0x-O3-Wall-Wextrat.cc-ot$clang++-3.2-std=c++0x-O3-Wall-Wextrat.cc-ott.cc:6:37:error:memberaccessintoincompl

c++ - thread_local成员变量构造

我遇到了thread_local的一些奇怪行为,不确定是我做错了什么还是GCC错误。我有以下最小重现场景:#includeusingnamespacestd;structbar{structfoo{foo(){cerr输出上面的注释行如下所示:main0Ideone取消注释后,它变成了这样:mainfoofoo4242Ideone我是不是漏掉了什么蠢东西?$gcc-vUsingbuilt-inspecs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapperTarget:x86_6

C++为什么有类头却有 "Unknown Type"?

这个问题在这里已经有了答案:Resolvebuilderrorsduetocirculardependencyamongstclasses(12个答案)关闭6年前。我有这个头文件,我正在尝试创建Item类型的变量。我已经包含了#include"Item.h",但在编译时我仍然在两个私有(private)变量上遇到unknowntypenameItem错误。#ifndefPLAYER_H#definePLAYER_H#include#include"Item.h"usingstd::vector;classPlayer{public://constructorPlayer(void);/

c++ - C++ 临时对象的生命周期是在什么时候创建的? : expression extended by binding it to a local const reference?

我不清楚是否可以通过将临时对象绑定(bind)到?:表达式中的常量引用来延长临时对象的生命周期:classFoo{...};Foo*someLValue=...;constFoo&=someLValue?*someLValue:Foo();通过调用默认构造函数Foo()创建的临时对象的生命周期是否通过将其绑定(bind)到本地constref来延长,即使绑定(bind)是有条件的?还是因为Foo()的临时值会在?:表达式的末尾被销毁,所以这会创建一个悬空引用? 最佳答案 在此代码中,条件运算符的第二个和第三个操作数具有不同的值类别(

c++ - 主线程中 block 作用域静态与命名空间作用域 thread_local 的初始化和销毁​​顺序

我正在尝试了解在主线程的上下文中使用静态存储持续时间和线程本地存储持续时间来初始化和销毁​​命名空间范围和block范围对象的顺序规则。考虑这两个类:structFoo{Foo(){std::cout除了它们的静态实例成员函数的实现之外,它们是相同的:thread_localFoot_foo;Foo&Foo::instance(){returnt_foo;}Bar&Bar::instance(){staticBars_bar;returns_bar;}Bar是一个Meyers单例,一个具有静态存储持续时间的block范围对象。Foo的实例是具有线程本地存储持续时间的namespace范

C++ : has_trivial_X type traits

boost库,似乎是即将推出的C++0x标准,定义了各种类型特征模板,以区分具有平凡构造函数、复制构造函数、赋值或析构函数的对象与不具有平凡构造函数的对象。其最重要的用途之一是优化某些类型的算法,例如通过使用memcpy。但是,我不明白所有各种has_trivial_X模板之间真正的实际区别。C++标准只定义了我们在这里关注的两大类类型:POD和非POD。如果一个类型具有已定义的构造函数、复制构造函数、赋值运算符或析构函数,则该类型是非POD。换句话说,任何不是内置类型或内置类型的C结构的东西都不是POD。那么区分has_trivial_assign和has_trivial_const

c++ - 关于multi-probe Local Sensitive Hashing的问题

很抱歉问这种菜鸟问题,但因为我真的非常急需一些关于如何使用MultiprobeLSH的指导,所以我自己没有做太多研究。我意识到有一个lib调用LSHKIT可以实现该算法,但我在尝试弄清楚如何使用它时遇到了麻烦。现在,我有几千个296维的特征向量,每个代表一个图像。该vector用于查询用户输入的图像,以检索最相似的图像。我用来推导vector之间距离的方法是欧氏距离。我知道这可能是一个相当菜鸟的问题,但是你们知道我应该如何实现多探针LSH吗?我真的非常感谢任何答复或回复。--更新--尝试使用提供的工具fitdata为我的数据创建模型,但它似乎没有包含我的文件。我用于输入的格式是这种格式

c++ - 从 std::true_type 继承 vs static constexpr const bool 成员

我知道这不是一个非常尖锐的问题。使用一个比另一个有优势(编译时间、依赖性、调试符号大小、可用性、可读性等)吗?templatestructIsSharedPtr:std::false_type{};对比templatestructIsSharedPtr{staticconstexprboolvalue=false;};相关问题...templatestructS;templatestructS{};templatestructS{};对比templatestructS;templatestructS{};templatestructS{}; 最佳答案

c++ - G++ 4.4.7 中的 "names the constructor, not the type"

我有以下简单的C++代码:#includeclassA{public:A(inty):x(y){}A&operator=(constA&rhs);intx;};A::A&A::operator=(constA&rhs){this->x=rhs.x;return*this;}intmain(int,char**){Aa1(5);Aa2(4);printf("a2.x==%d\n",a2.x);a2=a1;printf("a2.x==%d\n",a2.x);return0;}第11行,A的operator=()函数的定义所在,格式不正确......或者,至少,我相信是这样。正如预期的那样,

C++ - thread_local 变量存储在哪里?

我想了解thread_local限定符究竟是如何工作的,以及实际变量存储在哪里?这是在C++上。假设我有一个包含多个成员变量的类。该类的对象在堆上实例化,该对象在2个线程之间共享。使用适当的锁定机制来确保两个线程不会同时踩踏一个成员变量。线程需要跟踪少数线程特定项目。所以我想在与类声明相同的头文件中创建一个thread_local变量。据我了解,两个线程都将获得该变量的自己的拷贝,对吗?线程局部变量究竟存放在内存的什么位置?如果是数据段,在执行过程中如何准确地获取正确的变量? 最佳答案 1。据我了解,两个线程都将获得自己的此变量拷贝