小编Mat*_*her的帖子

什么时候不能将对象转换为引用?

我想从http://code.google.com/p/enhsim编译以下代码行:

enh::eout << enh::setw(26);
Run Code Online (Sandbox Code Playgroud)

gcc给出以下错误:

error: no match for 'operator<<' in 'enh::eout << enh::setw(26)'
Run Code Online (Sandbox Code Playgroud)

但是这个EnhSimOutput类(其中enh::eout是一个实例)确实声明:

EnhSimOutput& operator<< (setw& p);
Run Code Online (Sandbox Code Playgroud)

如果我实现一个按值接受对象的操作版本,这个问题就消失了:

EnhSimOutput& operator<< (setw p);
Run Code Online (Sandbox Code Playgroud)

或者如果我将enh::setw对象创建为本地对象,即:

enh::setw wValue(26);
enh::eout << wValue;
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么gcc不选择运营商的"按引用"版本开头?

编写此代码的开发人员明确地将其编译,但默认gcc拒绝执行此操作.为什么单独声明为局部变量的对象与本地创建的内联之间存在差异?

c++ gcc reference

7
推荐指数
1
解决办法
2530
查看次数

在C#.Net中获取XAML和RESX资源时的主要装配与Satellite装配问题

在包含文化中立XAML文件,一些文化中性图标和本地化字符串的本地化程序中,如何组织这些不同的资源类型以便全部找到它们?无论我尝试什么安排,我发现我的一种资源类型是无法访问的.

我遇到的问题是:

  • MainWindow.xaml文件始终构建到en-US附属程序集中.如果UltimateResourceFallbackLocation设置为MainAssembly,它将永远不会找到Window的BAML,并且我在InitializeComponent()调用中得到一个异常.所以我觉得被迫将UltimateResourceFallbackLocation设置为"Satellite".

  • Resources.resx文件中包含的文化中性图标资源始终构建到主EXE程序集中,如果UltimateResourceFallbackLocation设置为Satellite,则无法找到它们.这似乎与MainWindow.xaml文件的要求完全不兼容.

  • 如果我完全删除UICulture和NeutralResourcesLanguage - 这会强制XAML和RESX数据都构建到MainAssembly中,那么我的特定于文化的字符串不起作用.

问题是:我做错了什么?我应该如何构建项目,以便可以访问这三种类型的资源.

编辑(工作解决方案,但似乎错了):

我设法得到我的文化中立的RESX文件Resources.resx,通过完全复制它来构建Satellite组件,重命名重复的Resources.en-US.resx并将Resources.resx设置为Build Action:None(所以参考资料. resx仅用于生成Resources.Designer.cs文件,但不再将数据插入主EXE程序集中.

该程序现在适用于所有三种情况(本地化字符串,来自resx的非本地化数据和来自XAML的非本地化数据),因为我的所有文化中立资源现在都在en-US程序集中 - 但是将Resources.resx文件复制到实现这一点似乎很傻.

这很傻吗?有更聪明的方法吗?

c# wpf localization resx

6
推荐指数
1
解决办法
2078
查看次数

标签 统计

c# ×1

c++ ×1

gcc ×1

localization ×1

reference ×1

resx ×1

wpf ×1