template <class T>
class Node {
private:
T m_value;
//Node* m_ptr; //(1)
//Node<T>* m_ptr; //(2)
};
Run Code Online (Sandbox Code Playgroud)
有人可以解释上述两个陈述(1)和(2)之间的区别吗?这两个语句似乎都在编译,但我似乎无法找到ISO C++对它们所说的内容.
是否有一种有效且最少冗余的方法来有条件地将新项目放入地图中。
GenericObject genericObject;
...
FieldObject obj = genericObject.getFieldObject();
if(obj == null) {
map.put("key1", null);
map.put("key2", null);
} else {
map.put("key1", obj.getField1());
map.put("key2", obj.getField2());
}
Run Code Online (Sandbox Code Playgroud)
我能做的最好的是以下,但很好奇是否有更好的方法在 Java 9 中执行上述操作。
boolean insert = obj != null;
map.put("key1", insert? obj.getField1() : null);
map.put("key2", insert? obj.getField2() : null);
Run Code Online (Sandbox Code Playgroud)