小编Jam*_*eas的帖子

最佳做法是在赋值中使用initializer_list

我已经读过(Bjarne Stroustrup,The C++ Programming Language,6.3.5)关于在初始化变量时使用initializer_list,这样你就没有缩小转换.Bjarne建议仅使用直接列表初始化:

X a1 {v};

X a2 = {v};

X a3 = v;

X a4(v);

其中,只有第一个可以在每个上下文中使用,我强烈建议使用它.它比其他选择更清晰,更不容易出错.

为什么Bjarne只推荐第一个?

为什么不建议在赋值时执行initializer_list(而不是初始化)?或者只是暗示你应该这样做?

a1 = {v};

这是我要问的一个例子吗?为什么不建议使用initializer_list进行赋值(从我可以看出)但建议初始化?通过减少事故中可能缩小的转换似乎是有益的.

char c;
int toobig = 256;
c = 256; //no error, narrowing occurs
c = { toobig }; //narrowing conversion, error
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

CURL 静态链接未解析的外部符号

我在 x64 Native Tools 命令提示符 Visual Studio 中使用此命令从源代码构建了 CURL 静态库

nmake /f Makefile.vc 模式=静态机器=AMD64

我将 lib 文件夹添加到链接器库文件夹,将 libcurl_a.lib 添加到链接器输入,并将 include 文件夹添加到其他包含目录。我还使用了预处理器定义 CURL_STATICLIB。

库链接成功并找到标头。但是当我尝试编译时,我得到 60 个未解析的外部符号。https://hastebin.com/vukekakoti.tex

动态链接工作没有问题。

我该如何解决这个问题?

c++ curl visual-studio visual-studio-2017

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

标签 统计

c++ ×2

c++11 ×1

curl ×1

visual-studio ×1

visual-studio-2017 ×1