草庐IT

function-literal

全部标签

c++ - C++ 中的 "literal"是什么?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whatdoestheword“literal”mean?在阅读有关C++的文献时,我经常会遇到“literal”这个词。我有点不清楚这个术语在C++中的确切含义。 最佳答案 文字是直接在代码中呈现的一些数据,而不是通过变量或函数调用间接呈现。以下是一些示例,每行一个:421283.1415'a'"helloworld"构成文字的数据不能被程序修改,但可以复制到变量中以供进一步使用:inta=42;//createsvariable`a`withthesam

c++ - C++ 中的 "literal"是什么?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whatdoestheword“literal”mean?在阅读有关C++的文献时,我经常会遇到“literal”这个词。我有点不清楚这个术语在C++中的确切含义。 最佳答案 文字是直接在代码中呈现的一些数据,而不是通过变量或函数调用间接呈现。以下是一些示例,每行一个:421283.1415'a'"helloworld"构成文字的数据不能被程序修改,但可以复制到变量中以供进一步使用:inta=42;//createsvariable`a`withthesam

c++ - GCC/VS2008 : Different behaviour of function call when templated base class is derived from itself

以下代码适用于VisualStudio2008,但不适用于GCC/G++4.3.420090804。根据C++标准,哪种行为正确?templatestructA:A{};templatestructA{};structB:A{};templatevoidFunc(constA&a){}intmain(){Aa;//isderivedfromAFunc(a);//vs2008:ok,g++:ok//Comeau:okBb;//isderivedfromAFunc(b);//vs2008:ok,g++:error,nomatchingfunctionforcalltoFunc(B&)//C

c++ - GCC/VS2008 : Different behaviour of function call when templated base class is derived from itself

以下代码适用于VisualStudio2008,但不适用于GCC/G++4.3.420090804。根据C++标准,哪种行为正确?templatestructA:A{};templatestructA{};structB:A{};templatevoidFunc(constA&a){}intmain(){Aa;//isderivedfromAFunc(a);//vs2008:ok,g++:ok//Comeau:okBb;//isderivedfromAFunc(b);//vs2008:ok,g++:error,nomatchingfunctionforcalltoFunc(B&)//C

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++ - 错误 C2733 不允许重载函数 'function' 的第二个 C 链接

我正在尝试在VisualStudio2010pro中编译旧的cppMFC项目。它使用使用Labview编译的dll,我正在添加此信息,因为我不知道是什么导致了错误消息..错误消息显示在多个函数上,所有错误类型都相同。errorC2733:secondClinkageofoverloadedfunction'functionname'notallowed.“函数名”包括:“StrCatW”、“StrCmpNW”、“StrCmpW”、“StrCpyNW”和“StrCpyW”我找到了similarcase在网络上。虽然链接中的建议在我的情况下没有解决,但我仍然看到相同的错误消息。提前感谢任何

c++ - 错误 C2733 不允许重载函数 'function' 的第二个 C 链接

我正在尝试在VisualStudio2010pro中编译旧的cppMFC项目。它使用使用Labview编译的dll,我正在添加此信息,因为我不知道是什么导致了错误消息..错误消息显示在多个函数上,所有错误类型都相同。errorC2733:secondClinkageofoverloadedfunction'functionname'notallowed.“函数名”包括:“StrCatW”、“StrCmpNW”、“StrCmpW”、“StrCpyNW”和“StrCpyW”我找到了similarcase在网络上。虽然链接中的建议在我的情况下没有解决,但我仍然看到相同的错误消息。提前感谢任何