我有一个小玩具程序:
static int value = 0;
int function(int &value=value) {
return value;
}
int main() {
function();
}
Run Code Online (Sandbox Code Playgroud)
使用g ++ 7.2进行编译:
g ++ -std = c ++ 11 -Wall -Wextra test.cc -o test
没问题.
用clang ++编译 - 3.9:
clang ++ - 3.9 -std = c ++ 11 -Wall -Wextra test.cc -o test
test.cc:3:25: error: default argument references parameter 'value'
int function(int &value=value) {
^~~~~
test.cc:8:5: error: no matching function for call to 'function'
function();
^~~~~~~~
test.cc:3:5: note: candidate function not …Run Code Online (Sandbox Code Playgroud) 我最近遇到了这个问题(前几天一切正常):Visual Studio 2012开始拒绝构建原生WP8项目.
今天,我从模板'Windows Phone Direct3D App(Native Only)'创建了新的解决方案,以检查我是否在WP上正确支持我新创建的DLL.我尝试编译这个项目,首先没有任何更改或额外的引用 - 由VS生成的纯代码.但是,它因给定错误而失败.我非常清楚这是什么意思,可能的原因是什么,但我无法理解,在这种情况下它来自何处.奇怪的是:这只发生在'Win32'配置中,ARM编译很好:
1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug ARM ------
.......
Build Summary
-------------
00:11.742 - Success - Debug ARM - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj
Run Code Online (Sandbox Code Playgroud)
但Win32没有:
1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug Win32 ------
.......
1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
Build Summary
-------------
00:09.725 - Failed - Debug Win32 - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj
Run Code Online (Sandbox Code Playgroud)
我的标准(本机C++/Win32)项目也按预期工作(在Win32和x64平台目标中).
项目配置:(在两个平台中)
链接::输入:
d3d11.lib;%(AdditionalDependencies)
Run Code Online (Sandbox Code Playgroud)
链接::忽略:
ole32.lib;%(IgnoreSpecificDefaultLibraries)
Run Code Online (Sandbox Code Playgroud)
VC++目录:
Microsoft.ARM.Cpp.User:
$(WP80ToolSetPath)lib\arm;$(WindowsSDK_LibraryPath_ARM);
Run Code Online (Sandbox Code Playgroud)
Microsoft.Win32.Cpp.User:
$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WP80ToolSetPath)lib\x86;$(WindowsSDK_LibraryPath_x86)
Run Code Online (Sandbox Code Playgroud)
有什么想法可能是错误的或错误配置?我的想法已经不多了,我以前从未见过这样的东西.
顺便说一句,我注意到了另一个变化:当我尝试在ARM配置中编译WP8项目时,总是出现错误,说"不支持在桌面上构建ARM应用程序"(或类似的东西).现在ARM编译没有问题.这是正常的吗?
c++ linker-errors visual-studio-2012 windows-phone-8 windows-phone-8-sdk
我已经使用Visual Studio很长一段时间了,主要是为C++开发.我经常需要创建包含多个模块(项目)的解决方案 - 例如实用程序库,它由几个.dll文件组成.
当需要一个模块(A)使用另一个模块(B)时,有以下标准模式:
Linker- > Input- > Additional Dependencies- > 'B.lib').最近,我开始玩弄C#,因为我决定开发一些基于GUI的工具,我的引擎与它(这是很多更简单,比使用C++和外部库的Qt一样wxWidgets的或).我了解到,在C#中,使用'References'设置了这样的依赖:

当我发现时,我很惊讶这个选项也适用于C++项目!
实际上,在我创建示例解决方案并以这种方式设置依赖关系后,一切都运行正常,没有任何其他配置,如"链接器输入"或其他东西.
我的问题是:什么究竟该选项为C++项目呢?我对所有利润和潜在的权衡感兴趣.
我已经知道,它导致其他项目的链接输出设置为依赖项.还要别的吗?也许参考模块之间有一些运行时依赖?它如何影响生成的输出?
c++ project-reference visual-studio visual-c++ visual-studio-2012
感谢对初学者的任何帮助:) 我尝试了以下但不知道如何包装def Job():
import time
from progressbar import ProgressBar
pbar = ProgressBar()
def job():
Script ....
Script ...
Script ...
Script ...
Run Code Online (Sandbox Code Playgroud) 我们都在C++中使用了全局级别以及类级别的友元函数.我试图在互联网上搜索内部朋友功能是如何实现的.
"friend"关键字做了什么操作.例如,我们知道如何在内部实现v-ptr和v-table,我正在寻找同样的答案.
请注意: 这个问题与朋友功能或朋友功能的使用无关.
我正在ghostscript我的 Ubuntu 14.04 服务器上安装。由于依赖关系,我收到 make 命令错误:
/usr/bin/ld:找不到 -lXext collect2: 错误: ld 返回 1 退出状态 make: *** [bin/gs] 错误 1
但我有图书馆:
locate libXext.so
/usr/lib/x86_64-linux-gnu/libXext.so.6
/usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
这些足够了吗,或者我需要更多的图书馆?
我一直在下面的代码中遇到段错误!任何人都可以解释发生了什么?
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string line;
getline(cin, line, '\n');
istringstream iss(line);
vector<string> result;
for(string token; getline(iss, token, ' '); )
{
//if(token.empty()) continue;
result.push_back(token); // << Segfaults here
}
for(int i = result.size()-1; i>=0; i++)
{
cout << result[i] << ' ';
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我构建了一个映射有理数的类,我想通过标量操作溢出来实现乘法,类似于:
Rational &operator*(Rational const& a, double lambda)
{
Rational r(a._num * lambda, a._den);
}
Run Code Online (Sandbox Code Playgroud)
凡_num和_den是有理数的分子和分母.
当我跑步时cout << r * 45.2;,我明白了-858993460/4389064.应该注意的operator<<是,在其他情况下工作正常Rational.
它怎么可能不起作用?谢谢 :)
我们假设我有两个列表:
list_one = [1A, 1B]
list_two = [2A]
Run Code Online (Sandbox Code Playgroud)
如何从这两个数组中获取包含单词对的列表?想象:
answer = [1A-2A, 1B-2A]
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用两个for循环来实现它但是有一种'pythonic'方式吗?
我想for在使用map时使用带迭代器的循环,并希望在不是从begin()end开始的指定范围内运行它end().我想将它用于从第3元素到第5元素的范围
c++ ×7
python ×2
bing-maps ×1
c++11 ×1
clang ×1
gcc ×1
ghostscript ×1
google-maps ×1
linux ×1
makefile ×1
progress-bar ×1
ubuntu-14.04 ×1
vector ×1
visual-c++ ×1