草庐IT

Display-Functions

全部标签

c++ - 从 Josuttis : Do different template functions, 实例化到给定特定类型的相同函数签名,导致 ODR 无效?

在Josuttis和Vandevoorde关于模板的著名著作中,C++Templates:TheCompleteGuide,他们讨论了有关函数模板重载的细节。在他们的一个示例中,与函数签名和重载函数模板的讨论相关,他们提供了用以下术语描述的代码:Thisprogramisvalidandproducesthefollowingoutput:(Note:Outputshownbelow)但是,当我在VisualStudio2010中构建和编译相同的代码时,我得到了不同的结果。这让我相信要么是VS2010编译器生成了错误的代码,要么是Josuttis错误地认为代码有效。这是代码。(Josu

c++ - 从 Josuttis : Do different template functions, 实例化到给定特定类型的相同函数签名,导致 ODR 无效?

在Josuttis和Vandevoorde关于模板的著名著作中,C++Templates:TheCompleteGuide,他们讨论了有关函数模板重载的细节。在他们的一个示例中,与函数签名和重载函数模板的讨论相关,他们提供了用以下术语描述的代码:Thisprogramisvalidandproducesthefollowingoutput:(Note:Outputshownbelow)但是,当我在VisualStudio2010中构建和编译相同的代码时,我得到了不同的结果。这让我相信要么是VS2010编译器生成了错误的代码,要么是Josuttis错误地认为代码有效。这是代码。(Josu

C++14 类型列表,有什么理由更喜欢 'free functions' 到 'methods',反之亦然?

我看到了在C++11/14中实现类型列表的两种可能的风格,我很好奇是否有任何理由更喜欢其中一种。第一种技术是outlinedhere并在Boost的MPL库上建模。在这种风格中,您定义了接收类型列表并对其进行操作的元“自由函数”(使用声明的顶层)。以下是您将如何实现std::transform的元版本,该版本适用于类型而不是第一种样式中的值:templatestructtype_list;namespaceimpl{templateclassF,classL>structtransform_impl;templateclassF,templateclassL,typename...T>

C++14 类型列表,有什么理由更喜欢 'free functions' 到 'methods',反之亦然?

我看到了在C++11/14中实现类型列表的两种可能的风格,我很好奇是否有任何理由更喜欢其中一种。第一种技术是outlinedhere并在Boost的MPL库上建模。在这种风格中,您定义了接收类型列表并对其进行操作的元“自由函数”(使用声明的顶层)。以下是您将如何实现std::transform的元版本,该版本适用于类型而不是第一种样式中的值:templatestructtype_list;namespaceimpl{templateclassF,classL>structtransform_impl;templateclassF,templateclassL,typename...T>

c++ - C++ 类 "helper functions"应该是成员、免费还是非命名空间免费?

所以,我有课。这是一堂有用的课。我很喜欢。我们就叫它MyUsefulClass.MyUsefulClass有一个公共(public)方法。我们就叫它processUsefulData(std::vector&).现在假设processUsefulData确实做了两件事,我想从中重构它:std::vectorMyUsefulClass::processUsefulData(std::vector&data){for(/*...*/){for(/*...*/){//abunchofstatements...}}for(/*...*/){for(/*...*/){//abunchofothe

c++ - C++ 类 "helper functions"应该是成员、免费还是非命名空间免费?

所以,我有课。这是一堂有用的课。我很喜欢。我们就叫它MyUsefulClass.MyUsefulClass有一个公共(public)方法。我们就叫它processUsefulData(std::vector&).现在假设processUsefulData确实做了两件事,我想从中重构它:std::vectorMyUsefulClass::processUsefulData(std::vector&data){for(/*...*/){for(/*...*/){//abunchofstatements...}}for(/*...*/){for(/*...*/){//abunchofothe

c++ - Qt 5.1 没有显示的 QApplication - QXcbConnection : Could not connect to display

我正在使用Qt5.1,我正在尝试创建一个没有显示的QApplication。我需要用QPainter绘制文本,所以我需要使用QApplication(或QGuiApplication),否则会出现段错误。该应用程序在Qt4.8中运行良好,但在Qt5.1中在headless版本的Ubuntu中失败并出现以下错误:"QXcbConnection:Couldnotconnecttodisplay".在Qt4.8中,我能够使用GUIenabled=false的以下构造函数来创建不需要显示的QApplication:QApplication::QApplication(int&argc,char

c++ - Qt 5.1 没有显示的 QApplication - QXcbConnection : Could not connect to display

我正在使用Qt5.1,我正在尝试创建一个没有显示的QApplication。我需要用QPainter绘制文本,所以我需要使用QApplication(或QGuiApplication),否则会出现段错误。该应用程序在Qt4.8中运行良好,但在Qt5.1中在headless版本的Ubuntu中失败并出现以下错误:"QXcbConnection:Couldnotconnecttodisplay".在Qt4.8中,我能够使用GUIenabled=false的以下构造函数来创建不需要显示的QApplication:QApplication::QApplication(int&argc,char

C++ STL : Can arrays be used transparently with STL functions?

在我看到这段代码之前,我一直认为STL函数只能用于STL数据容器(如vector):#include#include#includeusingnamespacestd;intmain(){inta[]={9,8,7};cerr())使用g++编译和运行时没有任何警告或错误,正确的输出总和为24。C++/STL标准允许使用带有STL函数的数组吗?如果是的话,像数组这样的古老结构如何适应模板化迭代器、容器和函数的宏伟STL计划?此外,在这种用法中是否有任何需要程序员小心注意的警告或细节? 最佳答案 好吧,你问的是数组。您可以轻松地获得指

C++ STL : Can arrays be used transparently with STL functions?

在我看到这段代码之前,我一直认为STL函数只能用于STL数据容器(如vector):#include#include#includeusingnamespacestd;intmain(){inta[]={9,8,7};cerr())使用g++编译和运行时没有任何警告或错误,正确的输出总和为24。C++/STL标准允许使用带有STL函数的数组吗?如果是的话,像数组这样的古老结构如何适应模板化迭代器、容器和函数的宏伟STL计划?此外,在这种用法中是否有任何需要程序员小心注意的警告或细节? 最佳答案 好吧,你问的是数组。您可以轻松地获得指