草庐IT

c++ - 如何将 Makefile 的隐式规则与 .cpp 文件一起使用?

在C++文件的Makefile中有一个隐式规则,它使用.C或.cc扩展名。但我通常使用C++源文件的.cpp文件扩展名。如何将Makefile的隐式规则用于.cpp文件? 最佳答案 参见CatalogueofImplicitRules:CompilingC++programsn.oismadeautomaticallyfromn.cc,n.cpp,orn.Cwitharecipeoftheform‘$(CXX)$(CPPFLAGS)$(CXXFLAGS)-c’.Weencourageyoutousethesuffix‘.cc’for

c++ - 为什么没有隐式类型转换的警告?

我终于在我的程序中找出了一个错误,它是由返回类型的隐式类型转换引起的。即使使用g++-Wall也不会对此发出警告。不知道有没有办法快速找出这种无脑错误?#include//returntypeshouldbeint,butIwroteboolbymistakeboolfoo(intx){returnx;}intmain(){for(inti=0;i 最佳答案 这是正确的代码。如果(i)i的类型int也是正确的。n33764.12/1Aprvalueofarithmetic,unscopedenumeration,pointer,or

c++ - 函数模板显式特化 C++

我的书提到了两种显式特化的方法:templatevoidSwap(int&,int&);templatevoidSwap(int&,int&);两者有什么区别?什么时候用一个,什么时候用另一个?函数名后面的到底是什么? 最佳答案 whatisthedifferencebetweenboth?没有区别。在第二种情况下,您让编译器从特化的签名中执行类型推导。因此,两种形式都声明了Swap()的特化。对于T=int.whentouseoneandwhentousetheother?由您自行决定,当一种形式或另一种形式满足您在可读性或易于维

c++ - 类模板的成员模板的成员模板的显式模板函数特化是否有效?

有谁知道这个显式特化是否有效:templatestructL{templatestructO{templatestaticvoidFun(U);};};templatetemplatetemplatevoidL::O::Fun(U){}clangtrunk(12/3/2013)给出以下错误:f:...\test.cpp:36:20:错误:类'O'中'Fun'的越界定义没有定义voidL::O::Fun(U){}~~~~~~~~~~~~~~^产生了1个错误。我们将不胜感激标准中的任何支持性引用以证明您的回答是正确的!注意:我有点惊讶这是一个错误-我希望为任何以.开始实例化“Fun”的模板

c++ - 显式特化已删除的主模板

GCC接受这个但Clang拒绝它作为重新定义:templatevoids()=delete;templatevoids(){}谁是对的? 最佳答案 这是一个Clangbug还有CWGDR941,它已经被C++11采用。Clang不合格。 关于c++-显式特化已删除的主模板,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22369852/

c++ - 如何确定函数参数是自动设置为默认值还是在 C++ 中显式设置?

我很确定这是不可能的,但如果以某种方式存在(可能通过编译器提供的宏),它对我来说将非常有用,所以我将它发布在这里。假设我有一个函数:voidfunc(intparam1,boolparam2=false){...}param2在这里被赋予了默认值。是否有任何机制可以确定param2是否明确设置为其默认值false还是自动传递?换句话说,从函数func中,是否可以区分以下两个调用?我正在使用MicrosoftVisualC++编译器。func(1,false);和func(1); 最佳答案 你无法区分你问的方式,但你可以这样做:voi

c++ - NvAPI NVAPI_INTERFACE 缺少显式类型

我是c++/cli的新手,想为nvapi编写一个小的托管包装器。现在尝试访问某些函数时(例如NvAPI_Initialize)VisualStudio告诉我这个函数没有定义:#include"nvapi.h";NvAPIStatusNv_GPU_ThermalAPI::M_NvAPI_GPU_GetThermalSettings(System::UIntPtrgpuHandle,Nv_Thermal_TargetsensorIndex,[Out]array^%settings){NvAPI_Statusres=NvAPI_Status::NVAPI_OK;//OKNvPhysicalG

C++ 隐式和显式继承构造函数调用

我有一个关于对基本构造函数的隐式和显式调用的问题。如果我们有这样的类层次结构:classPerson{protected:std::stringm_name;public:Person(std::string&_name):m_name(_name){std::cout根据我的讲义,主要是对'Baby'的调用,如下所示:std::stringbabyname="Robert";intnappies=5;Babybaby(babyname,nappies);导致以下情况发生:当在Baby的初始化列表中对Person进行显式调用时:Baby的初始化列表被调用,no_of_nappies被初

显式类型转换(C 风格转换)的 C++ 转换符号和 static_cast 的多种解释

Paragraph4of[expr.cast](在撰写本文时可用的最新C++标准草案中)描述了C样式转换的行为如下:Theconversionsperformedbyaconst_­cast,astatic_­cast,astatic_­castfollowedbyaconst_­cast,areinterpret_­cast,orareinterpret_­castfollowedbyaconst_­cast,canbeperformedusingthecastnotationofexplicittypeconversion.Thesamesemanticrestrictionsan

C++ 模板和隐式类型转换

我有以下代码:#include#include"boost/shared_ptr.hpp"usingboost::shared_ptr;classBase{public:virtual~Base(){}virtualvoidprint()=0;};templateclassChild:publicBase{public:virtualvoidprint(){std::cout{public:virtualvoidprint(){std::coutvoidcall_print(shared_ptr>a){a->print();}voidcall_base_print(shared_ptr