jjzjj

c++ - 在 C++ 中同一类的另一个方法中使用 constexpr 方法

不出所料,我可以毫无问题地编译下面的示例//first_sample.cppstructsample_struct{constexprintsample_method(){return5;}};intmain(){sample_structsample_object;constexprintsample_variable=sample_object.sample_method();return0;}但由于以下原因我无法编译以下示例'this'isnotaconstantexpression//second_sample.cppstructsample_struct{constexpri

c++ - xgettext - 提取可翻译字符串并更新 .pot

我继承了一个sample.pot文件。现在,我在a1.c和a2.cpp中添加了新消息。我可以使用xgettext并将内容输出到同一个sample.pot而不是创建一个新的吗?例如:-xgettext-dsample-s-osample.pota1.cxgettext-dsample-s-osample.pota2.cpp这是为了更新模板以保留旧消息的首选方式吗?另一个问题是我们如何区分源代码中的可翻译字符串和普通字符串。我假设xgettext将从提到的源代码文件中提取所有字符串。如果有人能分享正确的方法就太好了..谢谢 最佳答案 -

c++ - const 对象未初始化的编译器投诉

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:uninitializedconst我知道需要初始化一个const对象。所以对于下面的代码,classsample{};intmain(){constsampleobj;return0;}编译器会报错,因为const对象obj没有初始化。但是当我使用默认构造函数修改代码(如下所示)时,编译器不会抛出任何错误。classsample{public:sample(){}};intmain(){constsampleobj;return0;}新添加的默认ctor做了什么让编译器满意的事情?

c++ - 使用 exit 和全局对象

我有以下程序,我在析构函数中调用exit()。当我在main()中创建一个类型为sample的对象时,析构函数被调用一次并且程序正常退出。但是当我创建一个样本类型的全局对象时,“Destructing..”会被无限打印。谁能解释一下怎么做?#include"iostream"#include"conio.h"usingnamespacestd;classsample{public:~sample(){cout 最佳答案 发生的事情是,exit()函数让程序调用所有全局对象的析构函数。由于在您的类的析构函数调用exit(1);时对象尚

c++ - 从网络摄像头预览捕获图像的最佳 DirectShow 方式? SampleGrabber 已弃用

我开发了DirectShowC++应用程序,它成功地将网络摄像头View预览到提供的窗口中。现在我想从这个实时网络摄像头预览中捕捉图像。为此,我使用了图形管理器、ICaptureGraphBuilder2、IMoniker等。我搜索并找到了以下选项:WIA和sample采集器。许多人建议使用SampleGrabber,但根据MS的msdn文档SampleGrabber已弃用,不应使用。而且我不想使用WIAAPI。那么从实时网络摄像头预览中捕获图像的最佳DirectShow方法是什么? 最佳答案 这是来自DxSnapsamplefro

c++ - gcc 6 是否支持使用 std::sample (c++17)?

我正在尝试编译这段包含std::sample的c++17代码使用gcc版本6.3.0和以下命令:g++-std=gnu++17-cmain.cpp。但我得到这个:错误:‘sample’不是‘std’的成员...#include#include#includeintmain(){std::vectora{0,1,2,3,4,5,6,7,8,9,10};std::vectorb(5);std::sample(a.begin(),a.end(),b.begin(),b.size(),std::mt19937{std::random_device{}()});return0;}gcc6是否支持

c++ - 自动转换错误

classSample{public:Sample();Sample(inti);Sample(Sample&s);~Sample();};Sample::Sample(){cout我期望隐式转换为5。但是,当我编译上面的代码时,出现以下错误:main.cpp:7:8:error:nomatchingfunctionforcallto‘Sample::Sample(Sample)’main.cpp:7:8:note:candidatesare:Sample.h:10:3:note:Sample::Sample(Sample&)Sample.h:10:3:note:noknownconv

c++ - CppUnit 和 CMake : . cpp 文件被编译两次

我目前正在使用CMake构建我的项目,并使用CppUnit对其进行测试。在我的CMake文件中,我创建了两个可执行文件。sample是编译后的源代码本身。使用sample_test我运行测试。如果我是这是我的CMakeLists.txt的一部分SET(SAMPLE_ROOT_PATH${PROJECT_BINARY_DIR})SET(SAMPLE_SOURCE_PATH${SAMPLE_ROOT_PATH}/src)SET(SAMPLE_TEST_SOURCE_PATH${SAMPLE_ROOT_PATH}/test)SET(SAMPLE_BIN_PATH${SAMPLE_ROOT_P

c++ - 容器内的 'const' 值实际上是不允许的吗?

为什么我不能将具有const值的结构放入像std::vector这样的容器中?(我理解编译器报告的技术原因,我只是不确定编译器/集合是否应该这样做)例如,一些非常简单的东西:structsample{intconsta;};std::vectorv;v.push_back(sample{12});这给出了关于使用已删除的operator=的错误(至少在GCC中)。但我不明白为什么它应该使用operator=。构造此vector时不需要使用复制运算符。如果它不使用复制构造函数一个就地新的,这是完全允许的。例如,以下是可以的:samplea;new(&a)sample{12};调用samp

c++ - gcc 警告“没有声明任何东西

我正在努力通过将typedef转换为使用别名来将一些C++代码更新为C+11。给定以下SCCE:#include#include/***LegacyCstructure*/structsample{enumwhat{FOO,BAR}what;};voidtdef(){typedefenumsample::whatdemo;demoa=sample::FOO;std::cout我在使用using声明时收到警告:warning:declaration‘enumsample::what’doesnotdeclareanythingusingdemo=enumsample::what;^尽管代