class A {
friend void f() {}
};
// void f() {} // compile error: redifinition of 'void f()'
int main() {
f(); // compile error: 'f' is not declared in this scope
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的示例中所看到的,如果f在A封闭的命名空间作用域中调用,则编译器无法找到f,这使我的想法f不在此范围内.但是当添加具有相同签名的函数的无法定义时,编译器会发出函数重定义的错误,这给出了与f此范围内实际相反的想法.
所以,我很困惑一个类内定义的朋友函数属于哪个范围.
首先从标准中摘录一些:
规格string::operator[]():
const_reference运算符[](size_type pos)const;
reference operator [](size_type pos);
需要:pos <= size().
返回:*(begin()+ pos)如果pos <size(),否则引用类型为T的对象,其值为charT(); 参考值不得修改.
复杂性:恒定时间.
规格string::c_str()和string::data():
const charT*c_str()const noexcept;
const charT*data()const noexcept;
返回:指针p,p + i == &operator[](i)对于[0,size()]中的每个i.
复杂性:恒定时间.
通过组合这两个规范,我们可以看到/ p返回的指针必须满足指定字符串的元素,并且等于,指定具有该值的对象.由于指针上的加法运算符用于获取字符串元素和最后一个对象的地址,因此它们必须位于单个数组中(您不能只使用字符串元素并在运行中创建对象,把它返还).那么可以肯定地说,在C++ 11中,保证在其底层存储中具有终止空字符吗?c_str()data()p[0...size()-1]p[size()]operator[](size())charT()charT()charT()str::string
编辑:我没有注意到我的问题的道歉是重复的.但是,我在这里得到的答案似乎与那个重复问题的答案相矛盾.
此外,我应该削弱我的假设:底层表示std::string应该保留足够的空间来保存终止空字符,并自由设置charT()值直到c_str()/ data()被调用.(即底层存储必须能够随时保留至少size()+1元素.)
我是iOS应用程序开发的新手,我只是尝试使用UIWebView在我的应用程序中显示移动网站并且不太成功.
我所做的只是在Google搜索工作中发现的一些最小的Xcode项目配置和编码:
使用Single View
Application模板在Xcode中创建一个新的iOS应用程序项目.
将Web视图从
场景拖动Object Library到View Controller场景中Main.storyboard.
在按住Control键的同时,将Web View从View
Controller场景拖动到ViewController.h编辑器,生成如下源代码行:
@property (weak, nonatomic) IBOutlet UIWebView *myWebView;
Run Code Online (Sandbox Code Playgroud)在ViewController.m中添加以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSURL *url = [NSURL URLWithString:@"http://www.amazon.com"];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:url]];
}
Run Code Online (Sandbox Code Playgroud)这就是我所做的一切(以及那些教程告诉我的所有内容).在我构建并运行应用程序(在模拟器和真实的iphone设备上)之后,该网站确实加载了应用程序的视图(并且确实加载了移动版本而不是PC版本),但它显示了网站,就好像视图很多大于实际的iPhone屏幕.这是一个screeshot(在这种情况下亚马逊,但其他网站基本相同):

我该怎么做才能让iOS UIWebView正确显示移动网站?
刚尝试了Dipen Chudasama关于禁用"用户大小类"选项的建议,这是所有这些建议的第一次,结果确实发生了一些变化(从左对齐到中心对齐),但仍然不是我的意思寻找.这是截图:

编辑:
感谢您热心人士给出的所有建议.在UIWebView中加载像amazon.com这样的网站应该是一个相当容易的任务,据我所知,然而,我没有成功的任何建议.
如果有人可以与我分享(通过Github或类似)只是一个示例xcode项目(从头开始使用最新版本的xcode工具链),除了可以正确加载amazon.com的UIWebView之外,这将是很棒的.这样我可以逐行进行差异,并且可以在我自己的项目中找到我做错的事情.
当我用一些未保存的已更改文件关闭Rubymine时,它会自动保存这些文件而不提示任何提示.无论如何要禁用这种自动保存关闭行为?我搜索了那个巨大的选项树一段时间但没有取得任何成果.
我从几个来源接受过教育,在C++ 11中,函数的返回值可以从包含命名局部变量的return语句构造.例如:
class A {};
A f() {
A a;
return a;
}
int main() {
f();
}
Run Code Online (Sandbox Code Playgroud)
也就是说,在C++ 11中,函数调用表达式指定的prvalue临时值f()是从函数的局部变量中移动构造的a,而不是像C++ 03中那样的复制构造.当然,从语义上讲,在进行任何优化级别之前,复制省略,NRVO等都是如此.
我的问题是,A'move构造函数的参数是类型的A&&,它只能绑定到prvalue或xvalue,对吧?那么哪个特定的异常规则允许它绑定到左值a?谢谢.