C ++是一种通用编程语言。它最初被设计为C的扩展,并保持类似的语法,但现在是一种完全不同的语言。使用此标记来查询有关使用C ++编译器编译的代码的问题。对特定标准版本[C ++ 11],[C ++ 17]等相关问题使用版本特定标记。
为什么我可以调用 printAlternativ 但不能打印?两者都不应该起作用。 使用命名空间 std; 内存测试类 { 民众: 内存测试(字符串); 〜MemTest(); 无效打印(); 无效 printAlternative(); ...
据我所知,除非 A) 涉及一个返回引用或接受引用的函数,或者 B)涉及一个类, 没有真正的理由使用它。我看不出他们有什么目的...
为什么可变 lambda 转换为函数指针而不是调用operator()?
从 cppinsights 我们看到下面的代码行 lambda(); 是如何实现的由语言解释: const auto lambda = [] () 可变 {}; 无效 foo() { 拉姆达(); } 人们会天真地认为,
我试图将类函数插入到映射值中,但出现错误: 错误 C3867 'ActionsOnTheDictionary::select':非标准语法;使用“&”创建指向成员的指针 所有我...
从 URL 读取远程 txt 文件并将其按原样存储到 const char* [] 数组的 C++ 代码
我正在尝试创建一个cpp程序,该程序将从URL读取远程文件,例如http://10.10.10.10/file.txt 文件包含以下格式的单词“word1”,“word2”,“word3&q...
我正在寻找一种对数组的每个 N 元素进行排序的算法。 例如,数组为 7 8 6 4 5 1 4 3 5,N 为 3。 我希望排序后的数组为 6 7 8 1 4 5 3 4 5 请注意...
我已经阅读了一些有关将消息从一个线程冒泡到所有其他线程以优雅退出的正确方法的资料(每个线程都执行自己的退出例程)。其中,我喜欢...
Linux 上使用默认 (SCHED_OTHER) 调度策略的每线程调度优先级
我正在尝试实现一个跨平台包装器来调整当前线程优先级;在 POSIX 上,“正确”的事情看起来像 /// 设置当前t的优先级调整...
未处理的异常:将无效参数传递给在 UWP 应用程序中将无效参数视为致命的函数
所以我正在为我的学校项目制作一个多项式简化器。我决定在 Visual Studio 中使用 C++ UWP 制作应用程序。 作为应用程序的额外功能之一,我实现了一个系统...
在优化我的代码时,我注意到我调用 malloc 的频率太高了。具体来说,我释放了一个结构,然后重新分配了相同的元素,在我释放的结构中,使用 s...
我一直在屏息等待微软发布他们的 C++23 std::mdspan 实现。它今天在 V19 Preview 1 中发布。我正在尝试尝试,但似乎不起作用。他...
在const lambda 对象上调用非常量operator()
考虑以下代码片段(演示): const auto lambda = [] () 可变 {}; 使用 Lambda = decltype(lambda); static_assert(!std::is_function_v); static_assert(std::is_class_v<
如何使用 C++ boost::serialization 处理可选 Xml 元素
我正在使用 C++ boost::序列化库来读取和写入配置 XML。为了向用户提供向后兼容性,在读取 XML 时,如果缺少某些 XML 元素,则需要具有
所以我对 C++ 和一般编程很陌生,在我的一些作业中,我需要存储我在向量中创建的对象,我总是使用这种方法: std::vector 类;
模板函数 func 设计为可在任何地方使用。它对任何 T 都有相同的函数体。我只想写一次它的函数体。但功能取决于定义类型 模板功能func<T>设计用于任何地方。对于任何T,它都有相同的函数体。 我只想写一次它的主体。但该功能取决于 type<T> 的定义才能正常工作,并且在某些情况下没有 type<T> 的定义。请参阅以下示例(C++17 中): /// type.h #include <stddef.h> #include <stdint.h> #include <type_traits> template<typename T, typename = void> struct type; template<typename T> size_t func() { return type<T>::magic; } template<typename T> struct type<T, std::enable_if_t<std::is_arithmetic_v<T>>> { static constexpr size_t magic = sizeof(T) * 2; }; /// my_type.h struct MyStruct { int a; static void Dummy(); }; /// my_type.cpp #include "my_type.h" #include "type.h" template<> struct type<MyStruct> { static constexpr size_t magic = 123; }; void MyStruct::Dummy() { (void)func<MyStruct>(); } /// main.cpp #include "my_type.h" #include "type.h" int main(int argc, char **argv) { func<int>(); // OK func<MyStruct>(); // Error } 我怎样才能做到这一点: 只写一次func<T>的正文。 当 func<T> 不完整时,可以调用 type<T>。 注意:有一个 Dummy 函数,用于强制编译器为 func<MyStruct> 生成代码,以便链接器满意。 使用显式实例化: /// my_type.h struct MyStruct { int a; }; // Explicit instantiation declaration extern template size_t func<MyStruct>(); /// my_type.cpp #include "my_type.h" #include "type.h" template<> struct type<MyStruct> { static constexpr size_t magic = 123; }; // Explicit instantiation definition template size_t func<MyStruct>(); 声明它存在于头文件中(因此包含头文件的任何内容都可以看到声明,而不是尝试实例化模板本身),并在类型完成后在源文件中定义它。 您也不再需要Dummy,无论如何也不能保证它能工作。
我正在将我制作的应用程序从 VB6 移植到 C++/Qt。在我原来的应用程序中,我不需要运行实际的 SQL 服务器,我可以只使用 MS Access .mdb 文件。 是否存在类似的东西...
#包括 使用命名空间 std; int main(){ 整数n,i,j; int arr[n]; 辛>>n; 对于 (j = 0; j < n; j++) { cin >> arr[j]; } for (i = n+1; i >=0; i--) { 算了...
我不完全理解为什么我们不总是使用std::move? 例子; std::map 测试; void foo(std::map& 测试, int t1, int t2) { test.emplace(std::move(t1), s...