- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
编辑:GCC 编译得很好,这是 VS2010 的问题。感谢您将我指向 ideone.com!
尝试编译以下内容时(VS2010):
#include <iostream>
template< typename PF01, typename PF02 >
inline auto FCall01( PF01 fCallee, PF02 && fParameter00 ) -> decltype( fCallee( std::forward< PF02 > ( fParameter00 ) ) )
{
decltype( fCallee( std::forward< PF02 > ( fParameter00 ) ) ) lResult( fCallee( std::forward< PF02 >( fParameter00 ) ) ); // offending line for Foo03
return ( lResult );
}
int gI = 0;
int & gCI = gI;
struct TA
{
int mData;
TA( int fData = 0 ) : mData( fData ) { }
TA( TA const & fA ) : mData( fA.mData ) { }
};
int Foo00( int & fA ){ return ( fA ); }
int & Foo01( int & ){ return ( gCI ); }
int const & Foo02( int & ){ return ( gCI ); }
TA Foo03( int & fA ){ return ( TA( fA ) ); }
int main( void )
{
decltype( FCall01( Foo00, gI ) ) l0( FCall01( Foo00, gI ) );
l0 = -1;
std::cout << gI << " : " << l0 << std::endl;
decltype( FCall01( Foo01, gI ) ) l1( FCall01( Foo01, gI ) );
l1 = -2;
std::cout << gI << " : " << l1 << std::endl;
decltype( FCall01( Foo02, gI ) ) l2( FCall01( Foo02, gI ) );
const_cast< int & > ( l2 ) = -3;
std::cout << gI << " : " << l2 << std::endl;
decltype( FCall01( Foo03, gI ) ) l3( FCall01( Foo03, gI ) );
l3.mData = -4;
std::cout << gI << " : " << l3.mData << std::endl;
return ( 0 );
}
我收到编译器警告:
Warning C4239: nonstandard extension used : 'initializing' : conversion from 'TA' to
'TA &'; A non-const reference may only be bound to an lvalue; see reference to function
template instantiation 'TA &FCall01<TA(__cdecl *)(int &),int&>(PF01,PF02) with
[PF01=TA(__cdecl *)(int &),PF02=int &]' being compiled.
对于内置类型,一切都很好,但是对于用户定义的类型,模板函数 FCall
中的 decltype(...)
给了我 TA&
而不是 TA
,同时作为 FCall
返回类型和 FCall
中的局部变量。
我没有看到它背后的逻辑,我认为标准说 decltype(f())
应该给出 f()
的准确返回类型。它适用于内置类型。用户定义类型是否有一些隐藏的陷阱,或者它只是 VS2010 在耍我?
附言我无法访问 GCC,有人可以检查 GCC 编译是否没有警告吗?
最佳答案
这是 VS2010 中的编译器错误。 GCC (ideone.com) 和 Visual C++ 11 Developer Preview 都不会发生这种情况。
感谢 PlasmaHH 和 Xeo 提供指向 ideone.com 的链接,以及 Jesse,了解有关 Visual C++ 11 开发人员预览版中错误状态的信息。
编辑:只是跟进:VS2010 中的这个错误发生在用户定义类型具有用户定义构造函数时。如果没有(使用编译器生成的默认值),则不会发生错误。
关于c++ - `decltype` : function return type `T` converted to `T&` for user-defined types (VS2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8758950/
假设a是张量,那么有什么区别: 类型(a) a.类型 a.type() 我找不到区分这些的文档。 最佳答案 type 是 python 内置方法。 它将返回对象的类型。喜欢 torch.Tensor.
什么是 Type 1 的居民的例子?两者都不是 Type也不是Type的居民?在 Idris REPL 中进行探索时,我无法想出任何东西。 更准确地说,我正在寻找一些 x除了 Type产生以下结果:
我找到了一些资源,但我不确定我是否理解。 我找到的一些资源是: http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb2ff3358411d1829f00
这两个函数原型(prototype)有什么区别? void apply1(double(f)(double)); void apply2(double(*f)(double)); 如果目标是将提供的函
http://play.golang.org/p/icQO_bAZNE 我正在练习使用堆进行排序,但是 prog.go:85: type bucket is not an expression
假设有一个泛型定义的方法信息对象,即一个方法信息对象,这样的方法Info.IsGenericMethodDefinition==TRUE:。也可以说它们也有一个泛型参数列表:。我可以使用以下命令获取该
在具有依赖类型的语言中,您可以使用 Type-in-Type 来简化语言并赋予它很多功能。这使得语言在逻辑上不一致,但如果您只对编程感兴趣而不对定理证明感兴趣,这可能不是问题。 在 Cayenne
根据 Nim 手册,变量类型是“静态类型”,而变量在内存中指向的实际值是“动态类型”。 它们怎么可能是不同的类型?我认为将错误的类型分配给变量将是一个错误。 最佳答案 import typetrait
假设您有以下结构和协议(protocol): struct Ticket { var items: [TicketItem] = [] } struct TicketItem { } prot
我正在处理一个 EF 问题,我发现它很难调试...以前,在我的系统中有一个表类型继承设置管理不同的用户类型 - 所有用户共有的一种根类型,以及大致基于使用该帐户的人员类型的几种不同的子类型。现在,我遇
这是我的 DBManager.swift import RealmSwift class DBManager { class func getAllDogs() -> [Dog] {
我正在尝试使用傅里叶校正图像中的曝光。这是我面临的错误 5 padded = np.log(padded + 1) #so we never have log of 0 6 g
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
请考虑以下设置: protocol MyProcotol { } class MyModel: MyProcotol { } enum Result { case success(value:
好吧,我将我的 python 项目编译成一个可执行文件,它在我的电脑上运行,但我将它发送给几个 friend 进行测试,他们都遇到了这个错误。我以前从未见过这样的错误。我使用 Nuitka 来编译代码
当我尝试训练我的模型时"ValueError: Type must be a sub-type of ndarray type"出现在 line x_norm=(np.power(x,2)).sum(
我尝试在另一个类中打断、计数然后加入对象。所以我构建协议(protocol): typealias DataBreaker = () -> [Double] typealias DataJoiner
我正在使用 VS 2015 更新 3、Angular 2.1.2、Typescript 2.0.6 有人可以澄清什么是 typings 与 npm @types 以及本月很难找到的任何其他文档吗? 或
我正在考虑从 VS2010 更改为 Mono,因此我通过 MoMA 运行我的程序集,看看我在转换过程中可能遇到多少困难。在生成的报告中,我发现我不断收到此错误: bool Type.op_Equali
主要问题 不太确定这是否可能,但由于我讨厌 Typescript 并且它使我的编码变得困难,我想我会问只是为了确定。 interface ISomeInterface { handler: ()
我是一名优秀的程序员,十分优秀!