草庐IT

variable-declaration

全部标签

c++ - 使用 bind2nd() : "member function already defined or declared" instead of "reference to reference" 的奇怪编译器错误

我最近花了很多时间来理解在这段代码中调用func()时的错误消息:intmain(){vector>v;doublesum=0;for_each(v.begin(),v.end(),bind2nd(ptr_fun(func),&sum));return0;}当func()像这样声明时,代码编译正常:voidfunc(vectorv,double*sum){}当我使用这个声明(为了提高效率)时,我得到了一个编译器错误:voidfunc(constvector&v,double*sum){}我期望看到的错误类似于reference-to-reference错误,因为binder2nd的op

c++ - 是否可以实现 C++11 互斥锁概念以供 std::condition_variable 使用?

我发现std::mutexVisualStudio2013中的实现速度太慢。它使用一个重量级的互斥锁来确保即使在所有进程之间也可以实现同步,这一切都很好而且花花公子;除非你不与其他进程交谈并且真的可以使用CRITICAL_SECTION的额外速度在Win32上提供自旋锁。我试图实现fast_recursive_mutex遵循C++11互斥概念并根据规范履行所有义务。从任何意义上说,它都是std::mutex的直接替代品只要您不在进程之间进行同步。它与std::lock_guard配合得很好和std::unique_lock.但是我在尝试将它与std::condition_variabl

C++ 错误 : Member declaration not found

我是一个C++新手。今天遇到一个问题:在头文件中,我定义了一个类:templateclassPtr_to_const{private:Array_Data*ap;unsignedsub;public:...Ptr_to_const&operator=(constPtr_to_const&p);};在源文件中,我编程为:templatePtr_to_const&Ptr_to_const::operator=(constPtr_to_const&p){...return*this;}编译时,编译器总是说:'找不到成员声明'。为什么?我使用eclipseCDT+CygwinGCC非常感谢!

c++ - const 变量作为非类型模板参数(VARIABLE 不能出现在常量表达式中)

为什么会这样?char__nontype[]="foo";typedefTemplateClassMyClass;但这(带有常量变量)不是吗?constchar__nontype[]="foo";typedefTemplateClassMyClass;编译器错误:错误:‘__nontype’不能出现在常量表达式中错误:模板参数2无效 最佳答案 区别是因为const影响链接。如果您添加extern,它会起作用。也就是说,据我所知:14.3.2Templatenon-typearguments[temp.arg.nontype]Atem

c++ - 为什么在通知 condition_variable 之前需要获取锁来修改共享的 "atomic"变量

这个问题在这里已经有了答案:Whyistherenowaitfunctionforcondition_variablewhichdoesnotrelockthemutex(1个回答)关闭7个月前。根据cppreference.com:Thethreadthatintendstomodifythevariablehastoacquireastd::mutex(typicallyviastd::lock_guard)performthemodificationwhilethelockisheldexecutenotify_oneornotify_allonthestd::condition

没有宏的 C++ 简单反射 : Print Variable Name and Its Value

在C++中是否有一种非宏的方式来打印变量名及其值。这是宏方法:#defineSHOW(a)std::coutPS:我用的是Linux,不需要跨平台的解决方案 最佳答案 不,C++不支持反射,唯一的方法(据我所知)是使用宏。 关于没有宏的C++简单反射:PrintVariableNameandItsValue,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6849965/

c++ - 错误 : uint64_t was not declared in this scope when compiling C++ program

我正在尝试一个简单的程序来打印steady_clock的时间戳值,如下所示:#include#includeusingnamespacestd;intmain(){cout(steady_clock::now().time_since_epoch()).count();cout但是每当我像这样编译时g++-oabcabc.cpp,我总是会遇到错误:Infileincludedfrom/usr/include/c++/4.6/chrono:35:0,fromabc.cpp:2:/usr/include/c++/4.6/bits/c++0x_warning.h:32:2:error:#er

c++ - 将 std::condition_variable 与 atomic<bool> 一起使用

有几个关于SO处理原子的问题,以及其他处理std::condition_variable的问题。但是我的问题是我下面的用法是否正确?三个线程,一个ctrl线程在取消暂停其他两个线程之前做准备工作。当工作线程(发送者/接收者)处于紧密的发送/接收循环中时,ctrl线程还能够暂停它们。使用atomic的想法是在未设置暂停bool值的情况下使紧密循环更快。classSomeClass{public://...//Disregardthatdataispublic...std::condition_variablecv;//UDPthreadswillwaitonthiscvuntilallo

c++ - 我可以用 C++ "forward declare"做什么?

我知道我能做到classFoo;可能structBar;和全局函数boolIsValid(intiVal);类型化的枚举呢?未声明类中的类型化枚举怎么样?带有未声明类的函数呢?未声明的类中的静态成员呢?未知命名空间中的这些怎么办?我是否遗漏了任何其他可以预先声明的内容? 最佳答案 可以转发声明模板,包括部分特化明确的特化嵌套类(这包括结构、“真实”类和union)非嵌套和本地类变量(“外部整数;”)职能如果“前向声明”是严格意义上的“声明但不定义”,您也可以前向声明成员函数。但是一旦它们被声明,你就不能在它们的类定义中重新声明它们。

c++ - QML 和 C++ 属性 - ReferenceError : Can't find variable

在编写QML应用程序时,我遇到了绑定(bind)问题,resp。在使用Qt4.8.1构建的QtQuick1应用程序中使用QML访问C++属性。每当我运行该应用程序时,我都会收到ReferenceError:Can'tfindvariable:...。在搜索文档、示例和论坛并创建一个小型QML项目来测试此行为后,我仍然无法弄清楚为什么会出现这些错误。这是我为测试获得的“应用程序输出”:应用输出Starting/.../build-QML_Cpp_propertyTest-Qt_4_8_1_in_PATH_System-Debug/QML_Cpp_propertyTest...Qmldeb