草庐IT

basic_structures

全部标签

c++ - 如何使用 Python 2.7.2 将 C++ 枚举转换为 ctypes.Structure?

我找了又找,但我还没有找到一个可以完成我需要做的事情的例子。我发现HowcanIrepresentan'Enum'inPython?在这里,但它不包括ctypes.Structure。我还发现Usingenumsinctypes.Structure在这里,但它包含我不熟悉的指针。我有一个包含typedef枚举的头文件,我需要在Python文件的ctypes.Structure中使用它。C++头文件:typedefenum{ID_UNUSED,ID_DEVICE_NAME,ID_SCSI,ID_DEVICE_NUM,}id_type_et;Python文件(我目前使用的方式):class

c++ - 模板化 ostream 重载歧义错误 : basic_ostream<char> vs const char[]

我正在尝试了解ostream重载。考虑一下#includeusingstd::ostream;enumclassA{a1,a2,a3};templateostream&operator编译时出现如下错误test.cpp:13:17:error:ambiguousoverloadfor‘operator}’and‘constchar[3]’)returnout虽然取消注释正常功能和注释模板版本工作正常。为什么二义性不是在正常功能中,为什么是模板化版本 最佳答案 非模板运算符不会引起任何歧义,因为该运算符本身无法解决此调用:return

c++ - 当非限定名称查找涉及 using-directives 时 [basic.scope.hiding]p2 的解释

在c++中有两种隐藏的名字:1)普通名称隐藏:[basic.scope.hiding]p1(http://eel.is/c++draft/basic.scope.hiding#1):Anamecanbehiddenbyanexplicitdeclarationofthatsamenameinanesteddeclarativeregionorderivedclass([class.member.lookup]).2)隐藏在[basic.scope.hiding]p2(http://eel.is/c++draft/basic.scope.hiding#2)中的特殊名称类型:Aclassn

c++ - 为什么 "gptr"类型的basic_streambuf是char_type*而不是const char_type*?

设置流缓冲的三个“gptr”的basic_streambuf成员,setg声明为:protected:voidsetg(char_type*gback,char_type*gptr,char_type*egptr);我想知道:为什么每个gptr的类型都是char_type*而不是constchar_type*?在这里使用const_cast为这些gptrs使用constchar指针是否安全? 最佳答案 它不是const,因为streambuf接口(interface)不知道您如何填充缓冲区。例如,underflow和uflow方法可

c++ - 我应该在 ATL/WTL 中使用 CString、basic_string<TCHAR> 还是其他东西?

我这几天只学了一点ATL(在意识到纯Win32有多痛苦之后),也学了WTL和MFC,据我所见,有很多不同的字符串我可以上课。我曾经做过这样的事情:#include#includenamespacestd{typedefbasic_string_tstring;}然后在我的代码中到处使用_tstring。在学习了一些ATL之后,我了解到在atltmp.h中有一个CString类。显然,在WTL中还有另一个CString类,在MFC中还有一个CString类。我不知道是继续使用ATL还是转而使用WTL、MFC或其他软件。但是现在,我正在将我的Win32代码转换为ATL,我不确定要更改什么以

c++ - Armadillo C++ :- Efficient access of columns in a cube structure

使用Armadillo矩阵库,我知道访问二维矩阵中的列的有效方法是通过简单地调用.col(i)。我想知道是否有一种有效的方法可以提取存储在“多维数据集”中的列,而无需首先调用slice命令?我需要最有效的方法来访问存储在例如(使用matlab符号)A(:,i,j)中的数据。我将在一个非常大的数据集上执行数百万次,因此速度和效率是重中之重。 最佳答案 我觉得你想要B=A.subcube(span:all,span(i),span(j));或等效B=A.subcube(span(),span(i),span(j));其中B将是与A相同类

c++ - 为什么 std::basic_string 不支持通过表达式模板进行连接?

Qt的QString可以通过operator%连接起来,它使用表达式模板预先计算结果字符串的大小并优化对operator+的多个链式调用.参见thisquestionofmine了解更多信息。为什么std::basic_string没有采用类似的结构?C++11甚至允许这样做吗?我只看到优点,很明显,库实现者可以在需要时破坏ABI兼容性(C++11甚至为libstdc++提供了一个很好的理由)。 最佳答案 因为没有人提出标准;除非有人提出建议,否则它不会进入。还因为它可能会破坏现有代码(如果他们使用operator+就是这样)。此外

c++ - Visual Studio 作为代码浏览器 : How to preserve the directory structure?

我下载了一个开源C++项目的源代码。这是一个Linux项目。由于VisualStudio是我最喜欢的IDE,我想用它来浏览和研究代码。我创建了一个空的C++项目,现在想将源代码添加到解决方案资源管理器。如何将目录结构添加到“解决方案资源管理器”。在解决方案资源管理器中将源代码的根文件夹拖放到项目上不起​​作用。它只是将文件添加到项目中,但目录结构丢失了。有什么办法可以保留目录结构吗?我不想手动重新创建目录结构。 最佳答案 如果您将项目文件添加到项目根目录,然后在“解决方案资源管理器”面板中切换到“显示所有文件”(选择项目中的文件),

c++ - solaris (x86) 上std::basic_string 的一些疑惑

solaris(x86)上std::basic_string的一些困惑#include#includeintmain(){constwchar_t*s=L"abcdef";std::wstringws(s,s+6);for(inti=0;i运行结果为:9799101000为什么不是979899100101102代码#include#includeintmain(){constwchar_t*s=L"abcdef";std::wstringws;ws.resize(6);for(inti=0;i可以得到预期的结果。我使用gcc3.4.6,构建命令是g++-fshort-wcharstri

c++ - 错误 : no matching function for call to ‘to_string(std::basic_string<char>&)’

即使在模板中我可以有任何类型,函数to_string对基本字符串不起作用:例如:std::stringstr("mystring");my_class(str);用这个仿函数定义:templatevoidoperator()(valuetypevalue){...private_string_field=std::to_string(value);不起作用。这是错误:error:nomatchingfunctionforcallto‘to_string(std::basic_string&)’避免它的最佳方法是什么。事先,我要求避免仅仅因为一些常见的关键字就链接到不相关的问题。