我仍然觉得C++提供了一些无法打败的东西.我不打算在这里开始一场火焰战,如果你对不喜欢C++有强烈的意见,请不要在这里发泄它们.我很想听听C++大师们为什么坚持下去.
我对C++的方面特别感兴趣,这些方面鲜为人知或未充分利用.
编辑:人们,请至少粗略阅读其他回复,以确保你没有复制已经说过的内容,如果你同意别人所说的话,那就投票吧!
我曾经在一家公司工作,其中一些主要架构师/开发人员已经强制要求断言不使用的各种项目,并且他们通常会从代码中删除并替换为异常.
我觉得他们在编写正确的代码时非常重要.任何人都可以建议如何证明这样的授权是合理的吗?如果是这样,断言有什么问题?
我在C++中使用模板mixins很多,但我想知道为什么这个技术不再使用.它似乎是最终的重用.这种权力和效率的结合是我真正喜欢C++的原因之一,并且无法看到自己转向JIT语言.
这篇文章:http://www.thinkbottomup.com.au/site/blog/C%20%20_Mixins_-_Reuse_through_inheritance_is_good是一个很好的背景,如果你不知道它们是什么,并在重用方面如此清楚地说明和表现.
我们特别关注Windows和Linux开发,并提出了两种似乎都有其优点的不同方法.Windows中的自然unicode字符串类型是UTF-16,linux中是UTF-8.
我们无法决定最佳方法:
在我们所有的应用程序逻辑(和持久数据)中标准化其中一个,并使其他平台进行适当的转换
将OS的自然格式用于应用程序逻辑(从而调用OS),并仅在IPC和持久性点进行转换.
对我来说,他们似乎都和对方一样好.
任何人都可以给我一个场景,他们认为繁忙的游标是合理的吗?从用户的角度来看,我觉得他们总是一个坏主意.澄清:忙碌的游标,我的意思是当用户无法再与应用程序交互时,他们只能移动他们的沙漏鼠标指针并发出一个曲调.
任何人都可以建议使用Web服务而不是RPC(而不是xml-rpc)作为两个C++进程之间的通信通道的理由,这两个进程都将由同一个团队开发吗?注意:Web服务不保证订购交付!
编程与例如由于需要输入大量特殊符号等的文字处理特别不同.
当前的新用户界面技术,适合编程,为什么?
或者语言语法的概念是问题,我们是否应该更符号地编程,如果是,这将如何影响用户界面?
编辑:当我指定用户界面技术时,我使用现有硬件(鼠标/键盘)和其他一些东西,如多点触控,手势识别,增强现实(请参阅HitLabNz的一些很好的例子).我对如何将这些应用于编程感兴趣.
我来自C++背景,我可以使用模板mixins来编写引用FinalClass的代码,这是传入的模板参数.这允许可重用函数"混入"任何派生类,只需从ReusableMixin继承即可使用MyFinalClass的模板参数.这一切都被内联到课堂中,所以就好像我只是写了一个大课程来做所有事情 - 即非常快!由于mixins可以链接,我可以将各种行为(和状态)混合到一个对象中.
如果有人想要澄清这项技术,请询问.我的问题是,如何在C#中重用?注意:C#泛型不允许从泛型参数继承.
#include <vector>
std::vector<int>::iterator foo();
void bar(void*) {}
int main()
{
void* p;
while (foo() != foo() && (p = 0, true))
{
bar(p);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果有误:
c:\ users\jessepepper\source\repos\testcode\consoleapplication1\consoleapplication1.cpp(15):错误C4703:使用了未初始化的本地指针变量'p'
任何人都可以告诉我为什么登录[self.giftees count]仍然返回0,即使我正在添加对象?
标题:
#import <UIKit/UIKit.h>
@interface Test2AppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
NSMutableArray *giftees;
}
@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) NSMutableArray *giftees;
@end
Run Code Online (Sandbox Code Playgroud)
从didFinishLaunchingWithOptions调用:
- (void)bootstrapGiftees
{
NSArray *gifteeNames = [NSArray arrayWithObjects:@"Jesse",,nil];
for (NSString *gifteeName in gifteeNames)
{
GifteeModel *g = [[GifteeModel alloc] init];
g.name = gifteeName;
[self.giftees addObject:g];
NSLog(@"giftees count = %d", [self.giftees count]);
[g release];
}
}
Run Code Online (Sandbox Code Playgroud) c++ ×7
assertions ×1
asynchronous ×1
busy-cursor ×1
c# ×1
code-reuse ×1
compiler-bug ×1
exception ×1
generics ×1
hci ×1
linux ×1
mixins ×1
objective-c ×1
performance ×1
reusability ×1
rpc ×1
templates ×1
unicode ×1
unique ×1
web-services ×1
windows ×1