小编Gre*_*g82的帖子

C++类std :: numeric_limits中的字段与方法

为什么std::numeric_limits在C++ 的模板类中,digits(和其他)被定义为类的(静态const)字段,但是min()并且max()是方法,因为这些方法只返回一个小的值?

提前致谢.

c++ oop numeric-limits

12
推荐指数
1
解决办法
243
查看次数

如何使用Visual Studio 2017安装程序安装调试工具?

我需要cdb.exe作为QT Creator的调试器.我知道cdb作为Windows SDK的一部分提供,但是当我通过Visual Studio 2017安装程序安装Windows SDK时没有安装.

在另一方面,如果我安装Windows SDK独立的(可在这里),我可以选择"调试工具",最后我得到了想要的文件夹DebuggersWindows kits,包含CDB.

如何cdb在Visual Studio安装期间获得?

qt windbg visual-studio

12
推荐指数
3
解决办法
8107
查看次数

为什么C++ 11字符串新函数(stod,stof)不是字符串类的成员函数?

为什么这些C++ 11头的新的功能<string>(stod,stof,stoull)所述的不成员函数string类?

是不是更符合C++ mystring.stod(...)而不是stod(mystring,...)

c++ non-member-functions c++11

7
推荐指数
1
解决办法
1830
查看次数

在Ubuntu下使用Visual Studio代码显示错误

我有几天Visual Studio Code的问题:无法启动它(事实上,窗口几乎全黑),这是我从终端启动时的控制台输出:

bash: impossible de régler le groupe de processus du terminlal (-1): Ioctl() inapproprié pour un périphérique
bash: pas de contrôle de tâche dans ce shell
[3267:0609/135005:ERROR:buffer_manager.cc(361)] [.CommandBufferContext.Compositor-0xc0a90cb29a0]GL ERROR :GL_INVALID_ENUM : glBufferData: <- error from previous GL command
[3267:0609/135007:ERROR:texture_manager.cc(2278)] [.CommandBufferContext.RenderCompositor-0x29650b4d9c60]GL ERROR :GL_INVALID_ENUM : glTexImage2D: <- error from previous GL command
[3267:0609/135007:ERROR:gles2_cmd_decoder.cc(2109)] [.CommandBufferContext.RenderWorker-0x29650b4d96e0]GL ERROR :GL_INVALID_ENUM : GLES2DecoderImpl::DoBindTexImage2DCHROMIUM: <- error from previous GL command
[3267:0609/135007:ERROR:gles2_cmd_decoder.cc(2113)] [.CommandBufferContext.RenderWorker-0x29650b4d96e0]GL ERROR :GL_INVALID_OPERATION : ScopedTextureBinder::ctor: was unhandled
[3267:0609/135007:ERROR:gles2_cmd_decoder.cc(2109)] [.CommandBufferContext.RenderWorker-0x29650b4d96e0]GL ERROR :GL_INVALID_VALUE : ScopedTextureBinder::dtor: <- error …
Run Code Online (Sandbox Code Playgroud)

ubuntu opengl-es visual-studio-code

6
推荐指数
1
解决办法
2522
查看次数

kcachegrind无法打开callgrind文件

我正在使用callgrind来分析一小段代码.Callgrind输出文件生成良好,其内容看起来不错,但我无法用kcachegrind打开它们:我收到以下错误消息:

无法打开文件"callgrind.out.4953".检查它是否存在,并且您有足够的权限来阅读它.

我对它们所在的文件和目录拥有所有权限,但具有相同的问题.此外,它适用于同一工作区中的其他文件夹中的其他项目.我还确切地说,在两种情况下进程都正确终止.

profiling valgrind callgrind kcachegrind

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

gcc -fPIC与-shared

使用gcc / g ++编译共享库时,为什么选项-fPIC未隐含-shared?或者换句话说,-fPIC在链接时是否需要该选项?

简而言之,我应该写:

gcc -c -fPIC foo.c -o foo.o
gcc -shared -fPIC foo.o -o libfoo.so  // with -fPIC
Run Code Online (Sandbox Code Playgroud)

或以下条件是否足够:

gcc -c -fPIC foo.c -o foo.o
gcc -shared foo.o -o libfoo.so // without -fPIC
Run Code Online (Sandbox Code Playgroud)

c++ gcc g++ shared-libraries

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

函数值返回的对象的地址

考虑以下最小代码:

class MyClass {
    public:
    MyClass() {}
};

MyClass myfunc() {
    MyClass obj;
    cout << "Address of obj in myFunc " << &obj << endl;
    return obj;
}

int main() {
    MyClass obj(myfunc());
    cout << "Address of obj in main   " << &obj << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我获得以下输出:

Address of obj in myFunc 0x7fff345037df
Address of obj in main   0x7fff3450380f
Run Code Online (Sandbox Code Playgroud)

现在,只需在MyClass中添加析构函数,我就得到以下输出:

Address of obj in myFunc 0x7fffb6aed7ef
Address of obj in main   0x7fffb6aed7ef
Run Code Online (Sandbox Code Playgroud)

显示两个对象现在都是一样的......这只是巧合吗?!

此外,究竟发生了什么:

MyClass obj(myfunc());
Run Code Online (Sandbox Code Playgroud)

我已经重载了复制构造函数来打印消息,但它从未出现......

c++

4
推荐指数
1
解决办法
119
查看次数

C++中的const double表达式

C++ 11英文维基百科页面中,我们可以读到:

在C++ 11之前,仅当变量声明为const,初始化程序是常量表达式并且是整数或枚举类型时,变量的值才能用于常量表达式.如果使用constexpr关键字定义变量,则 C++ 11 将删除变量必须为整数或枚举类型的限制:

 constexpr double earth_gravitational_acceleration = 9.8;
 constexpr double moon_gravitational_acceleration = earth_gravitational_acceleration / 6.0;
Run Code Online (Sandbox Code Playgroud)

这是什么意思?特别是,它是否意味着:

const double earth_gravitational_acceleration = 9.8;
const double moon_gravitational_acceleration = earth_gravitational_acceleration / 6.0;
Run Code Online (Sandbox Code Playgroud)

在C++ 11之前的C++中是非法的?G ++与此完全OK,即使有-ansi,-pedantic等...

谢谢!

c++ const constexpr

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

CPU架构8085和8086(以及基于8086的cpu)如何区别和分类?

阅读英特尔创造的CPU的不同谱系,我头脑中引起的许多问题需要解决.问题如下:

就8085和8086架构的不同而言,这两种架构的英特尔名称有何不同?

注意:我的朋友告诉我8085是一个8位微处理器,但8086是一个16位处理器,这使得它们彼此不同,这就是为什么,一个叫8085,另一个叫8086.但据我所知,我们现在使用的大部分CPU目前都是基于8086 cpu的80x86架构,它有32位版本,也有64位,老实说这显示我朋友的解释是错误的因为所有这些CPU仍被称为80x86架构,尽管这些位是不同的.

作为后续,80x86架构从8086继承了什么属性,为什么英特尔不会只调用CPU 8087,而是称为80186,80286,80386等?

x86 intel cpu-architecture computer-architecture cpu-registers

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