为什么这不能编译g ++ 4.6和g ++ 4.7?我试图获得字符串到线程特定存储的映射.我相信,有一些像这样的东西在提升1.48.实际上,它与boost的版本无关,但是标志-std = c ++ 0x.如果不存在则编译.因此,寻找错误的解释以及如何解决它.
谢谢
#include <map>
#include <boost/thread/tss.hpp>
#include <boost/shared_ptr.hpp>
int main(int argc, char** argv) {
typedef boost::thread_specific_ptr< int > Tss_int_ptr;
typedef std::map< std::string, Tss_int_ptr > Tss_int_map_t;
Tss_int_map_t tmap;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误消息如下.
g++-4.7 -g -std=c++0x -I"/home/someone/open_source/admin/install/boost_1_52_0/include" -c ~/tmp/fail.cpp
In file included from /usr/include/c++/4.7/bits/stl_algobase.h:65:0,
from /usr/include/c++/4.7/bits/stl_tree.h:63,
from /usr/include/c++/4.7/map:60,
from /home/someone/tmp/fail.cpp:1:
/usr/include/c++/4.7/bits/stl_pair.h: In instantiation of ‘struct std::pair<const std::basic_string<char>, boost::thread_specific_ptr<int> >’:
/usr/include/c++/4.7/bits/stl_tree.h:133:12: required from ‘struct std::_Rb_tree_node<std::pair<const std::basic_string<char>, boost::thread_specific_ptr<int> > >’
/usr/include/c++/4.7/bits/stl_tree.h:1082:4: required from ‘void std::_Rb_tree<_Key, _Val, …Run Code Online (Sandbox Code Playgroud) 是否有一个简单,轻量级/廉价的调用来确定对象是否支持命名方法?所以,在这个obj.respondsTo会很棒.
dynamic _toJson(dynamic obj) {
return obj.respondsTo('toJson'))? obj.toJson() : obj;
}
class Foo {
String foo = "Foo.foo";
Bar bar = new Bar();
Map toJson() {
return {
"foo" : _toJson(foo),
"bar" : _toJson(bar)
};
}
}
Run Code Online (Sandbox Code Playgroud)
一种替代方法是调用它并捕获noSuchMethod异常,但我认为这是不好的做法而且价格昂贵?
是否有一个简单的CSS样式条目,比如说,核心图标按钮的大小减半?
我用这些替换字体真棒图标,目前图标大小比文本大得多,所以我正在寻找一种方法来缩小它.
<div horizontal layout>
<core-icon-button icon="add-circle"></core-icon-button>
<div horizontal layout center>Expand Entries</div>
</div>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想缩小图标按钮内的图标并减少填充.
在下面的服务器/客户端套接字代码中,服务器尝试将int从0发送到1023。客户端接收到正确数量的int,但它们以255换行。这是为什么,正确的方法是什么?
import 'dart:async';
import 'dart:io';
main() async {
final server = await ServerSocket.bind('127.0.0.1', 4041);
server.listen((Socket socket) {
print('Got connected ${socket.remoteAddress}');
for(int i=0; i<1024; i++) {
socket.add([i]);
}
socket.close();
print('Closed ${socket.remoteAddress}');
});
}
Run Code Online (Sandbox Code Playgroud)
import 'dart:async';
import 'dart:io';
main() async {
final client = await Socket.connect('127.0.0.1', 4041);
client.listen(
(var data) => print('Got $data'),
onDone: () { print('Done'); client.close(); },
onError: (e) { print('Got error $e'); client.close(); });
print('main done');
}
Run Code Online (Sandbox Code Playgroud)
而且,感觉Socket API有点不同-与其他语言相比,它比Dartish更支持它作为流读取的方式。但是,如果您只想读取N个字节怎么办?您如何实现的?我看到了take方法(Stream take(int count)),但是我不清楚到底是什么 …
是否有标准方法将属性指定为字符串或由字符串键控的映射,并在模式中的其他位置指定值类型T?
例如,假设您要为用户最喜欢的电影建模,其中键类型是电影的名称,值类型是关于电影的一些属性集(年份,预算,总收入等)
我想你可以首先将MovieDataPair建模为具有name属性的类型和包含所需属性的value属性.然后地图就是那些数组.但是,那么你需要一个特殊的唯一约束来确保任何电影名称只出现一次.
是否有json架构中的某些东西支持这个,或者用于它的标准模式?如果没有在json架构中内置支持,那么其他架构解决方案呢?
问题级联样式表的答案使用"id"或"class"表示id
如果"它是......"(例如导航),请在元素上放置ID
还有一个评论:
因为这个ID只能使用一次(在页面中),但元素可以被分类多次.元素也只能有一个标识符,但只能有多个分类.但是,可以识别和分类元素.
使用阴影dom,关于id的部分是否可以使用一次(在页面中)仍然可以使用?例如,获取组件中元素的一种简单方法是为每个id赋予组件唯一的查询权限:
在html中:
<input id="amount" placeholder="Amount" on-change="{{recalc}}"></input>
<input id="term-years" placeholder="Term (yrs) e.g. 30" on-change="{{recalc}}"></input>
<input id="rate" placeholder="Interest Rate" on-change="{{recalc}}"></input>
Run Code Online (Sandbox Code Playgroud)
在Dart代码中:
termYearsElm = shadowRoot.querySelector('#term-years');
amountElm = shadowRoot.querySelector('#amount');
rateElm = shadowRoot.querySelector('#rate');
Run Code Online (Sandbox Code Playgroud)
在玩这个时,组件的多个实例不会发生冲突.这种方法安全还是坏主意?如果它是安全的,那么ids的规则是否已经改变?
此代码尝试打开一个现有文件,然后通过 openWrite 添加文本。
import 'dart:io';
main() {
File inFile = new File('/tmp/foo.txt');
String currentText = inFile.readAsStringSync();
var writer = inFile.openWrite();
writer.write(currentText);
writer.write("\nOne more line");
writer.close();
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
完成后文件为空。如果 exit(0) 不存在,则可以正常工作。应执行哪些调用以确保在退出之前写入所有写入内容?
你会如何简单地实现这个功能:
String fetchUrlBodyAsString(String url) {
...
}
Run Code Online (Sandbox Code Playgroud)
用法:
String schema = fetchUrlBodyAsString("http://json-schema.org/draft-04/schema#");
Run Code Online (Sandbox Code Playgroud)
此线程使用dart下载文件解释了从主函数获取数据的好方法.但是,如果你尝试它,你会看到真正的工作发生在离开主要之后.我认为我想要创建的同步函数很难使用HttpClient,因为它试图让异步api同步工作.根据这个可能无法实现的主题:https://groups.google.com/a/dartlang.org/d/msg/misc/kAgayQyaPhQ/wonJ776_FGIJ
在非浏览器/控制台设置中实现此操作的Dart方法是什么?
dart ×5
dart-polymer ×2
boost ×1
c++ ×1
c++11 ×1
dart-mirrors ×1
g++ ×1
json ×1
jsonschema ×1
sockets ×1
std-pair ×1