我试图弄清楚如何在自身中获取lambda函数的地址。这是一个示例代码:
[]() {
std::cout << "Address of this lambda function is => " << ????
}();
Run Code Online (Sandbox Code Playgroud)
我知道我可以在变量中捕获lambda并打印地址,但是我想在执行此匿名函数时就地执行此操作。
有没有更简单的方法?
为什么下面的代码不起作用?
ReactDOM.render( <h1>Hello</h1>, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
但这段代码有效。
var elem = React.createElement('h1',{},"Hello");
ReactDOM.render( elem, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
很长时间后回来做出反应..试图查看网络..没有发现它已被弃用?那为什么它不工作?
更新:我的浏览器控制台在此处显示语法错误
ReactDOM.render( <h1>Hello</h1>, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
更新:感谢您通过添加以下行来帮助一切正常
<script type="text/babel">
Run Code Online (Sandbox Code Playgroud) 我为什么要使用 enable_shared_from_this ,因为我也可以通过普通分配获得相同的效果。
struct A : std::enable_shared_from_this<A> {
std::shared_ptr<A> getptr() {
return shared_from_this();
}
};
int main () {
// What is the differentce between this code
std::shared_ptr<A> p1 = make_shared<A>();
std::shared_ptr<A> p2 = p1->getptr();
// Vs this
std::shared_ptr<A> p1 = make_shared<A>();
std::shared_ptr<A> p2 = p1;
}
Run Code Online (Sandbox Code Playgroud) 在编写一些代码时,我意识到我的一个代码工作,根据我的理解不应该工作.代码是
int main() {
int val;
cin>>val;
int array[val];
}
Run Code Online (Sandbox Code Playgroud)
不仅如此,即使是下面的代码也能正常工作
int main() {
int valone = rand();
int valtwo = rand();
int array[valone][valtwo];
}
Run Code Online (Sandbox Code Playgroud)
我总是理解静态数组需要常量值,或编译器在编译期间可以推导出的值.
最近的C++ 11/14规范是否有任何变化,或者从一开始就适用于C++.
注:Visual Studio的编译器提供了这种情况的一个错误,但
g++
并clang
成功编译上面的代码