小编G.R*_*sky的帖子

如何在OS X上进行静态链接

我正在尝试链接到OS X上的静态库.我-static在gcc命令中使用了该标志,但是我收到以下错误消息:

ld_classic: can't locate file for: -lcrt0.o
collect2: ld returned 1 exit status

我查看了手册页,它的内容如下:

除非所有库(包括libgcc.a)都已使用-static编译,否则此选项在Mac OS X上不起作用.由于既没有提供libSystem.dylib的静态版本也没有提供crt0.o,因此该选项对大多数人没用.

有没有其他方法可以链接到这个静态库?

macos linker static-libraries

51
推荐指数
4
解决办法
3万
查看次数

什么时候应该将构造函数设置为constexpr?

我知道c ++ 11允许使用constexpr为编译时而不是运行时指定表达式.

我知道这也可以用于类的构造函数.但是,此构造函数必须初始化类的所有成员,以便用作constexpr(在编译时),并且它调用的任何函数也应标记为constexpr.

但是什么时候会将他的构造函数设置为constexpr,除了轻微优化之外还有其他任何好处吗?

这是否意味着,如果我可以,我应该总是将我的构造函数设置为constexpr?

c++ constexpr c++11

15
推荐指数
1
解决办法
703
查看次数

当 --quiet 时,在 svn 上签出 (co) 项目是否会更快?

我必须使用svn签出需要一段时间的大型项目,所以我只是想知道是否将其设置--quiet(-q)不打印任何消息会更快吗?或者这与它无关?

svn repository svn-repository

5
推荐指数
1
解决办法
2042
查看次数

使用C++ 11在成员初始化列表中的初始化列表语法

我一直在经历' A Tour of C++ ',Bjarne在构造函数的成员初始化中使用了c ++ 11初始化列表功能,就像这样(使用花括号):

A a;
B b;
Foo(Bar bar):
  a{bar.a}, b{bar.b}
{}
Run Code Online (Sandbox Code Playgroud)

但是,这不会在c ++ 11之前编译.与旧成员初始化列表有什么区别(使用圆括号):

Foo(Bar bar):
  a(bar.a), b(bar.b)
{}
Run Code Online (Sandbox Code Playgroud)

那么有什么区别,什么时候应该优先于另一个呢?

c++ member-initialization initializer-list c++11

3
推荐指数
1
解决办法
1654
查看次数

使用python将hex-string转换为整数

请注意,问题不是十六进制到十进制,而是十六进制值到整数的字符串.

假设我有一个来自hexdump的刺痛(例如'6c 02 00 00')所以我需要先将其转换为实际的十六进制,然后获得它所代表的整数...(这个特定的一个将是620作为一个int16和int32)

我尝试了很多东西,但更多地迷惑了自己.有没有快速的方法在python中进行这样的转换(最好是3.x)?

python hex python-3.x

3
推荐指数
2
解决办法
4886
查看次数

调试配置文件(.xcconfig)

有没有办法检查您的xcode项目是否正在使用您提供的.xcconfig配置文件?

我的意思是,如果有某种方式"打印"一个语句,例如调试,如#warning,#error,printf等......?

原因是我已经设置了一些配置,我觉得它们没有被使用......

configuration xcode xcconfig xcode-project

2
推荐指数
1
解决办法
1806
查看次数

在std :: array中的元素上调用用户定义的构造函数

我有一个简单的例子,我创建了std::array一些Foo元素:

struct Foo
{
     Foo(int bar=0) : m_bar(bar) 
     {
       // Code depending on the value of bar
     }

     int m_bar;
};

const unsigned int num = // get array size 
std::array<Foo, num> fooArr;
Run Code Online (Sandbox Code Playgroud)

当我在构造函数中使用初始化列表时,m_bar(bar)它将所有设置Foo.m_bar0(因为这是默认的构造函数参数值).如果我不这样做,那么垃圾值就满了.

我的问题是如何在不知道数据大小之前将另一个与默认值不同的值传递给数组中每个元素的构造函数?

我在创建数组时尝试使用init列表,如下所示:std::array<Foo, 5> fooArr{3}但是只将第一个元素设置m_bar3.

c++ arrays initialization c++11 stdarray

2
推荐指数
1
解决办法
553
查看次数

std :: vector size() - 1总是给出最后一个元素的索引吗?

说我有一个std::vector名字myVec.

我不知道它会达到的确切尺寸,所以我只使用它myVec.push_back(...).

我可以依赖这样的事实:在我有push_back之后,size() - 1会给我最后一个元素的索引吗?谢谢.

c++ indexing stl vector push-back

1
推荐指数
2
解决办法
2339
查看次数