草庐IT

template-instantiation

全部标签

c++ - 在使用 Clang 编译 CRTP Singleton 时,如何解决声称缺少 "explicit instantiation declaration"的问题?

我们正在使用curiouslyrecurringtemplatepattern实现单例。但是,在最近的Clang版本中,我们收到了-Wundefined-var-template警告。建议的修复方法是添加“显式实例化声明”。我试图这样做,但后来在定义单例模板类成员变量的编译单元中出现有关“实例化后的显式特化”的错误。解决此警告突出显示的问题的适当构造是什么?简化详细信息(已删除大部分逻辑,以制作MCVE):单例基础.hh:templateclassSingletonBase{public:staticT*get_instance(){if(!instance_){instance_=T

c++ - 外部模板 'inconsistent explicit instantiations'

给定#include//CaseI:errorerrorC2961:'std::vector>':inconsistentexplicitinstantiations,apreviousexplicitinstantiationdidnotspecify'externtemplate'templateclassstd::vector;externtemplateclassstd::vector;//CaseII:fine//externtemplateclassstd::vector;//templateclassstd::vector;//CaseIII:fine//externte

WPF界面魔法:探秘Template奇妙世界,个性化定制你的UI

 概述:WPF中的Template机制为界面定制提供了强大工具,包括控件模板、ItemsPresenter、ItemsPanel、和ItemContainerStyle。通过这些功能,开发者能精确定义控件外观和布局,个性化每个项的样式,实现灵活而美观的用户界面。WPF中各种Template功能用途:Template(控件模板):用途: 控件模板用于定义整个控件的外观和布局。示例: 在ComboBox中,可以通过模板定义文本区域、下拉按钮区域以及Items的Popup区域。ItemsPresenter(项呈现器):用途: 在控件样式中标记一个区域,用于展示该控件的Items。示例: 在Combo

c++ - 标准 :forward inside a template class

templateclassBlockingQueue{std::queuecontainer_;templatevoidpush(U&&value){static_assert(std::is_same::type>::value,"Can'tcallpushwithoutthesameparameterastemplateparameter'sclass");container_.push(std::forward(value));}};我希望BlockingQueue::push方法能够处理T类型对象的右值和左值引用,以将其转发到std::queue::push正确的版本。是像上面

c++ - auto stdMaxInt = std::max<int> 的类型推导失败;

使用GCC4.8.4和g++--std=c++11main.cpp输出以下errorerror:unabletodeduce‘auto’from‘max’autostdMaxInt=std::max;对于这段代码#includetemplateconstT&myMax(constT&a,constT&b){return(a;myMaxInt(1,2);autostdMaxInt=std::max;stdMaxInt(1,2);}为什么它适用于myMax但不适用于std::max?我们可以让它与std::max一起工作吗? 最佳答案

c++ - 错误 : ‘template<class> class std::auto_ptr’ is deprecated

我正在使用scons和ubuntu。当我使用'scons'制作一些程序时,会发生错误,例如,src/db/DBTextLoader.cc:296:3:error:‘templateclassstd::auto_ptr’isdeprecated[-Werror=deprecated-declarations]/usr/include/c++/5/bits/unique_ptr.h:49:28:note:declaredheretemplateclassauto_ptr;这是我的命令;$./configuer$sourcesomething.sh$scons其实我也不知道。我已经在搜索这个

c++ - 'instantiation' 对模板的意义

Notethatcodeisinstantiatedonlyformemberfunctionsthatarecalled.Forclasstemplates,memberfunctionsareinstantiatedonlywhentheyareused.上面的引文来自这本书:AddisonWesley的C++Templates。我想了解行话“代码被实例化”的含义。这是否意味着只保留特定的内存,或者只编译该代码或其他什么? 最佳答案 这是一个非常有趣的问题,应该在编译器如何处理模板的更广泛的上下文中完成。基本上模板是编译器从中生

c++ - 错误 : Expected template-name before '<' token

我正在尝试编译一个实现chain和chainNodes的程序并在以下行(第22行)出现错误:classchain:publiclinearList错误是:Error:expectedtemplate-namebefore'知道为什么会出现这种情况吗?我的代码如下://linkedimplementationofalinearlist//derivesfromabstractclasslinearListjusttomakesure//allmethodsoftheADTareimplemented#ifndefchain_#definechain_#include#include#in

C++11 : Is it possible to give fixed-template-parameted template to varidic-template-template-parameter?

(是的,由于我糟糕的英语,标题很奇怪;我希望有人能改进它。)接听thisquestion,我发现这段代码有效:templateclassA{};templateclassU>classB{};intmain(){Bit_works;}..虽然templateclass和templateclass不相等。我试图弄清楚为什么这是可能的,并观察了N3337standard的[temp.param],但我找不到任何东西。怎么可能? 最佳答案 是的,这是可能的。C++1114.3.3/3特别允许,并提供了一个例子。3Atemplate-arg

c++ - CLion "Instantiating an unknown structure without reference"但编译正常

我一直在尝试使用CLion编辑器和MinGW在Windows10(64位)上使用HDF5设置我的cmake项目。经过大量时间尝试正确设置我的CMakeLists文件后,我得到了一些工作-代码编译,mingw32-make或cmake没有错误。但是,我仍然在CLion中遇到带有红色下划线的错误,这些错误似乎对构建没有任何影响,但我感觉它们存在是因为我做错了什么。(除了使用C++进行类项目外,我还很陌生)这是我的CMakeLists.txtcmake_minimum_required(VERSION2.8)project(testProject)add_definitions(-std=c