草庐IT

hidden_size

全部标签

c++ - 哪个 C++ 标准头文件定义了 SIZE_MAX?

我正在开发一个恰好在几个地方使用SIZE_MAX的现有C++代码库。我做了一些重构,现在SIZE_MAX没有在其中一个模块中定义。这个问题出现在Travis-CI试图在Linux上构建项目。在我重构之前它工作得很好,但是很难跟踪包含了哪些确切的头文件。为了在本地复制问题,我安装了一个带有默认gcc的UbuntuVM,并且能够重现它。以下是相关来源:#includeintmain(){size_ta=SIZE_MAX;}命令行很简单:g++a.cpp错误是:a.cpp:Infunction‘intmain()’:a.cpp:5:16:error:‘SIZE_MAX’wasnotdecla

c++ - 哪个 C++ 标准头文件定义了 SIZE_MAX?

我正在开发一个恰好在几个地方使用SIZE_MAX的现有C++代码库。我做了一些重构,现在SIZE_MAX没有在其中一个模块中定义。这个问题出现在Travis-CI试图在Linux上构建项目。在我重构之前它工作得很好,但是很难跟踪包含了哪些确切的头文件。为了在本地复制问题,我安装了一个带有默认gcc的UbuntuVM,并且能够重现它。以下是相关来源:#includeintmain(){size_ta=SIZE_MAX;}命令行很简单:g++a.cpp错误是:a.cpp:Infunction‘intmain()’:a.cpp:5:16:error:‘SIZE_MAX’wasnotdecla

c++ - 为什么顺序容器同时具有 size_type 和 difference_type?

vector两者都有vector::size_type和vector::difference_type.从size_type开始,两者似乎都没有必要存在。保证能够保存与vector的最大元素数一样大的值。可能包含在给定的系统上,并且在任何有效的用例中,difference_type必须小于或等于最大元素数,即顺序容器中两个元素之间的距离永远不会大于顺序容器可以包含的最大元素数。有人可以举个例子说明两者之间有什么区别吗? 最佳答案 container::difference_type存在是因为对于某些序列容器,您可以减去迭代器。该减法

c++ - 为什么顺序容器同时具有 size_type 和 difference_type?

vector两者都有vector::size_type和vector::difference_type.从size_type开始,两者似乎都没有必要存在。保证能够保存与vector的最大元素数一样大的值。可能包含在给定的系统上,并且在任何有效的用例中,difference_type必须小于或等于最大元素数,即顺序容器中两个元素之间的距离永远不会大于顺序容器可以包含的最大元素数。有人可以举个例子说明两者之间有什么区别吗? 最佳答案 container::difference_type存在是因为对于某些序列容器,您可以减去迭代器。该减法

C++ -fvisibility=hidden -fvisibility-inlines-hidden

我对C++可见性属性有疑问。我已阅读http://gcc.gnu.org/wiki/Visibility但我不太明白它是如何工作的。我想在我拥有的一些共享库中隐藏可见性。我相信这意味着符号被隐藏了?那么您打算如何链接共享库?有什么特别的方法吗?如果我链接它通常如何链接它不起作用。谁能帮帮我。 最佳答案 -fvisibility=hidden默认隐藏所有符号。然后您要做的就是选择您希望链接到您的库的用户可以看到哪些功能,并通过使用可见属性标记它们使其可见。例如void__attribute__((visibility("default

C++ -fvisibility=hidden -fvisibility-inlines-hidden

我对C++可见性属性有疑问。我已阅读http://gcc.gnu.org/wiki/Visibility但我不太明白它是如何工作的。我想在我拥有的一些共享库中隐藏可见性。我相信这意味着符号被隐藏了?那么您打算如何链接共享库?有什么特别的方法吗?如果我链接它通常如何链接它不起作用。谁能帮帮我。 最佳答案 -fvisibility=hidden默认隐藏所有符号。然后您要做的就是选择您希望链接到您的库的用户可以看到哪些功能,并通过使用可见属性标记它们使其可见。例如void__attribute__((visibility("default

c++ - string.empty() 或 string.size() == 0 哪个更快?

最近,在一次讨论中,一位程序员同事要求我做一些代码更改。我有类似的东西:if(mystring.size()==0)//dosomethingelse//dosomethingelse讨论是关于使用mystring.empty()来验证字符串是否为空。现在,我同意可以说string.empty()是更冗长和可读的代码,但它有什么性能优势吗?我做了一些挖掘,发现了与我的问题有关的以下2个答案:Implementationfrombasic_string.hSOAnswerthatpointstoISOStandard-here这两个答案都支持我的说法,即string.empty()与st

c++ - string.empty() 或 string.size() == 0 哪个更快?

最近,在一次讨论中,一位程序员同事要求我做一些代码更改。我有类似的东西:if(mystring.size()==0)//dosomethingelse//dosomethingelse讨论是关于使用mystring.empty()来验证字符串是否为空。现在,我同意可以说string.empty()是更冗长和可读的代码,但它有什么性能优势吗?我做了一些挖掘,发现了与我的问题有关的以下2个答案:Implementationfrombasic_string.hSOAnswerthatpointstoISOStandard-here这两个答案都支持我的说法,即string.empty()与st

C++: "vector<int>::size_type variable"- 以这种方式声明有什么意义?

我认为这是一个非常基本的问题,但我无法弄清楚。我习惯于在C++中使用数组,但我现在开始学习vector。我正在编写测试代码,遇到了一个问题。首先,这是我制作的代码:#include#include#includeusingnamespacestd;intmain(){vectorscore(10);for(vector::size_typei=0;i>score[i];}doubletotal=accumulate(score.begin(),score.end(),0);cout在for第9行中的句子,我声明i作为vector::size_type类型(因为有人告诉我这样做)。我用i

C++: "vector<int>::size_type variable"- 以这种方式声明有什么意义?

我认为这是一个非常基本的问题,但我无法弄清楚。我习惯于在C++中使用数组,但我现在开始学习vector。我正在编写测试代码,遇到了一个问题。首先,这是我制作的代码:#include#include#includeusingnamespacestd;intmain(){vectorscore(10);for(vector::size_typei=0;i>score[i];}doubletotal=accumulate(score.begin(),score.end(),0);cout在for第9行中的句子,我声明i作为vector::size_type类型(因为有人告诉我这样做)。我用i