IGLICT / NeRF-Editing

[CVPR 2022] Code for "NeRF-Editing: Geometry Editing of Neural Radiance Fields"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build simple_mesh

UdonDa opened this issue · comments

commented

Hi, @FrozenSilent .
Thank you for sharing your wonderful work.
Now I try to reproduce your results.

But, I encounter an error when I build simple_mesh.
Did you encounter the error?

I use cmake 3.24.1.

[ 50%] Building CXX object CMakeFiles/simple_mesh.dir/simple_mesh/simple_mesh.cpp.o
In file included from /usr/local/include/OpenVolumeMesh/Core/HandleIndexing.hh:4:0,
                 from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:42,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/Handles.hh: In instantiation of 'constexpr SubHandle OpenVolumeMesh::detail::SuperHandleT<Derived, SubHandle>::half(int) const [with Derived = OpenVolumeMesh::FH; SubHandle = OpenVolumeMesh::HFH]':
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:216:23:   required from here
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:142:5: error: body of constexpr function 'constexpr SubHandle OpenVolumeMesh::detail::SuperHandleT<Derived, SubHandle>::half(int) const [with Derived = OpenVolumeMesh::FH; SubHandle = OpenVolumeMesh::HFH]' not a return-statement
     }
     ^
/usr/local/include/OpenVolumeMesh/Core/Handles.hh: In instantiation of 'constexpr SubHandle OpenVolumeMesh::detail::SuperHandleT<Derived, SubHandle>::half(int) const [with Derived = OpenVolumeMesh::EH; SubHandle = OpenVolumeMesh::HEH]':
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:220:23:   required from here
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:142:5: error: body of constexpr function 'constexpr SubHandle OpenVolumeMesh::detail::SuperHandleT<Derived, SubHandle>::half(int) const [with Derived = OpenVolumeMesh::EH; SubHandle = OpenVolumeMesh::HEH]' not a return-statement
/usr/local/include/OpenVolumeMesh/Core/Handles.hh: In instantiation of 'constexpr Derived OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::opp() const [with Derived = OpenVolumeMesh::HEH; SuperHandle = OpenVolumeMesh::EH]':
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:224:16:   required from here
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:128:5: error: body of constexpr function 'constexpr Derived OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::opp() const [with Derived = OpenVolumeMesh::HEH; SuperHandle = OpenVolumeMesh::EH]' not a return-statement
     }
     ^
/usr/local/include/OpenVolumeMesh/Core/Handles.hh: In instantiation of 'constexpr SuperHandle OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::full() const [with Derived = OpenVolumeMesh::HEH; SuperHandle = OpenVolumeMesh::EH]':
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:228:17:   required from here
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:122:5: error: body of constexpr function 'constexpr SuperHandle OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::full() const [with Derived = OpenVolumeMesh::HEH; SuperHandle = OpenVolumeMesh::EH]' not a return-statement
     }
     ^
/usr/local/include/OpenVolumeMesh/Core/Handles.hh: In instantiation of 'constexpr Derived OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::opp() const [with Derived = OpenVolumeMesh::HFH; SuperHandle = OpenVolumeMesh::FH]':
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:232:16:   required from here
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:128:5: error: body of constexpr function 'constexpr Derived OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::opp() const [with Derived = OpenVolumeMesh::HFH; SuperHandle = OpenVolumeMesh::FH]' not a return-statement
     }
     ^
/usr/local/include/OpenVolumeMesh/Core/Handles.hh: In instantiation of 'constexpr SuperHandle OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::full() const [with Derived = OpenVolumeMesh::HFH; SuperHandle = OpenVolumeMesh::FH]':
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:236:17:   required from here
/usr/local/include/OpenVolumeMesh/Core/Handles.hh:122:5: error: body of constexpr function 'constexpr SuperHandle OpenVolumeMesh::detail::SubHandleT<Derived, SuperHandle>::full() const [with Derived = OpenVolumeMesh::HFH; SuperHandle = OpenVolumeMesh::FH]' not a return-statement
     }
     ^
In file included from /usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:49:0,
                 from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/EntityUtils.hh:26:66: error: 'entitytag_dispatch' function uses 'auto' type specifier without trailing return type
 inline auto entitytag_dispatch(EntityType type, F fun, Ts... args)
                                                                  ^
/usr/local/include/OpenVolumeMesh/Core/EntityUtils.hh:26:66: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/EntityUtils.hh:57:23: error: 'for_each' function uses 'auto' type specifier without trailing return type
     auto for_each(F &f) {
                       ^
/usr/local/include/OpenVolumeMesh/Core/EntityUtils.hh:57:23: note: deduced return type only available with -std=c++14 or -std=gnu++14
In file included from /usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:51:0,
                 from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/detail/Tracking.hh:49:19: error: 'begin' function uses 'auto' type specifier without trailing return type
     auto begin()  const { return tracked_.cbegin(); }
                   ^~~~~
/usr/local/include/OpenVolumeMesh/Core/detail/Tracking.hh:49:19: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/detail/Tracking.hh:50:19: error: 'end' function uses 'auto' type specifier without trailing return type
     auto end()    const { return tracked_.cend(); }
                   ^~~~~
/usr/local/include/OpenVolumeMesh/Core/detail/Tracking.hh:50:19: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/detail/Tracking.hh:68:24: error: 'for_each' function uses 'auto' type specifier without trailing return type
     auto for_each(F fun)
                        ^
/usr/local/include/OpenVolumeMesh/Core/detail/Tracking.hh:68:24: note: deduced return type only available with -std=c++14 or -std=gnu++14
In file included from /usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:54:0,
                 from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/Properties/PropertyPtr.hh: In member function 'std::unique_ptr<OpenVolumeMesh::BasePropertyPtr> OpenVolumeMesh::PropertyStorageT<T>::make_property_ptr()':
/usr/local/include/OpenVolumeMesh/Core/Properties/PropertyPtr.hh:87:50: error: use of 'auto' in lambda parameter declaration only available with -std=c++14 or -std=gnu++14
     return entitytag_dispatch(entity_type(), [&](auto entity){
                                                  ^~~~
In file included from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45:0,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh: At global scope:
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:89:10: error: 'optional' in namespace 'std' does not name a template type
     std::optional<PropertyPtr<T, EntityTag>> internal_find_property(const std::string& _name) const;
          ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:178:10: error: 'optional' in namespace 'std' does not name a template type
     std::optional<PropertyPtr<T, EntityTag>> create_property(const std::string& _name = std::string(), const T _def = T());
          ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:183:10: error: 'optional' in namespace 'std' does not name a template type
     std::optional<PropertyPtr<T, EntityTag>> create_shared_property(const std::string& _name, const T _def = T());
          ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:188:10: error: 'optional' in namespace 'std' does not name a template type
     std::optional<PropertyPtr<T, EntityTag>> create_persistent_property(const std::string& _name, const T _def = T());
          ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:198:10: error: 'optional' in namespace 'std' does not name a template type
     std::optional<PropertyPtr<T, EntityTag>> get_property(const std::string& _name);
          ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:203:10: error: 'optional' in namespace 'std' does not name a template type
     std::optional<const PropertyPtr<T, EntityTag>> get_property(const std::string& _name) const;
          ^~~~~~~~
In file included from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45:0,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:271:33: error: 'vertex_props_begin' function uses 'auto' type specifier without trailing return type
     auto vertex_props_begin()   const {return persistent_props_begin<Entity::Vertex>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:271:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:273:33: error: 'vertex_props_end' function uses 'auto' type specifier without trailing return type
     auto vertex_props_end()     const {return persistent_props_end  <Entity::Vertex>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:273:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:275:33: error: 'edge_props_begin' function uses 'auto' type specifier without trailing return type
     auto edge_props_begin()     const {return persistent_props_begin<Entity::Edge>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:275:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:277:33: error: 'edge_props_end' function uses 'auto' type specifier without trailing return type
     auto edge_props_end()       const {return persistent_props_end  <Entity::Edge>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:277:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:279:33: error: 'halfedge_props_begin' function uses 'auto' type specifier without trailing return type
     auto halfedge_props_begin() const {return persistent_props_begin<Entity::HalfEdge>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:279:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:281:33: error: 'halfedge_props_end' function uses 'auto' type specifier without trailing return type
     auto halfedge_props_end()   const {return persistent_props_end  <Entity::HalfEdge>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:281:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:283:33: error: 'face_props_begin' function uses 'auto' type specifier without trailing return type
     auto face_props_begin()     const {return persistent_props_begin<Entity::Face>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:283:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:285:33: error: 'face_props_end' function uses 'auto' type specifier without trailing return type
     auto face_props_end()       const {return persistent_props_end  <Entity::Face>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:285:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:287:33: error: 'halfface_props_begin' function uses 'auto' type specifier without trailing return type
     auto halfface_props_begin() const {return persistent_props_begin<Entity::HalfFace>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:287:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:289:33: error: 'halfface_props_end' function uses 'auto' type specifier without trailing return type
     auto halfface_props_end()   const {return persistent_props_end  <Entity::HalfFace>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:289:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:291:33: error: 'cell_props_begin' function uses 'auto' type specifier without trailing return type
     auto cell_props_begin()     const {return persistent_props_begin<Entity::Cell>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:291:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:293:33: error: 'cell_props_end' function uses 'auto' type specifier without trailing return type
     auto cell_props_end()       const {return persistent_props_end  <Entity::Cell>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:293:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:295:33: error: 'mesh_props_begin' function uses 'auto' type specifier without trailing return type
     auto mesh_props_begin()     const {return persistent_props_begin<Entity::Mesh>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:295:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:297:33: error: 'mesh_props_end' function uses 'auto' type specifier without trailing return type
     auto mesh_props_end()       const {return persistent_props_end  <Entity::Mesh>();}
                                 ^~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:297:33: note: deduced return type only available with -std=c++14 or -std=gnu++14
In file included from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45:0,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh: In member function 'bool OpenVolumeMesh::ResourceManager::property_exists(const string&) const':
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:208:16: error: 'internal_find_property' was not declared in this scope
         return internal_find_property<T, EntityTag>(_name).has_value();
                ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:208:16: note: suggested alternative: 'internal_create_property'
         return internal_find_property<T, EntityTag>(_name).has_value();
                ^~~~~~~~~~~~~~~~~~~~~~
                internal_create_property
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:208:40: error: expected primary-expression before ',' token
         return internal_find_property<T, EntityTag>(_name).has_value();
                                        ^
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:208:51: error: expected primary-expression before '>' token
         return internal_find_property<T, EntityTag>(_name).has_value();
                                                   ^
/usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:208:60: error: 'const string {aka const class std::__cxx11::basic_string<char>}' has no member named 'has_value'
         return internal_find_property<T, EntityTag>(_name).has_value();
                                                            ^~~~~~~~~
In file included from /usr/local/include/OpenVolumeMesh/Core/ResourceManager.hh:350:0,
                 from /usr/local/include/OpenVolumeMesh/Core/TopologyKernel.hh:45,
                 from /usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:41,
                 from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh: At global scope:
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:128:6: error: 'optional' in namespace 'std' does not name a template type
 std::optional<PropertyPtr<T, EntityTag>>
      ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh: In member function 'OpenVolumeMesh::PropertyPtr<T, EntityTag> OpenVolumeMesh::ResourceManager::request_property(const string&, T)':
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:166:17: error: 'internal_find_property' was not declared in this scope
     auto prop = internal_find_property<T, EntityTag>(_name);
                 ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:166:17: note: suggested alternative: 'internal_create_property'
     auto prop = internal_find_property<T, EntityTag>(_name);
                 ^~~~~~~~~~~~~~~~~~~~~~
                 internal_create_property
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:166:41: error: expected primary-expression before ',' token
     auto prop = internal_find_property<T, EntityTag>(_name);
                                         ^
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh: At global scope:
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:174:6: error: 'optional' in namespace 'std' does not name a template type
 std::optional<PropertyPtr<T, EntityTag>>
      ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:186:6: error: 'optional' in namespace 'std' does not name a template type
 std::optional<PropertyPtr<T, EntityTag>>
      ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:202:6: error: 'optional' in namespace 'std' does not name a template type
 std::optional<PropertyPtr<T, EntityTag>>
      ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:209:6: error: 'optional' in namespace 'std' does not name a template type
 std::optional<const PropertyPtr<T, EntityTag>>
      ^~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh: In member function 'void OpenVolumeMesh::ResourceManager::set_shared(OpenVolumeMesh::PropertyPtr<T, EntityTag>&, bool)':
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:226:25: error: 'internal_find_property' was not declared in this scope
         auto existing = internal_find_property<T, EntityTag>(_prop.name());
                         ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:226:25: note: suggested alternative: 'internal_create_property'
         auto existing = internal_find_property<T, EntityTag>(_prop.name());
                         ^~~~~~~~~~~~~~~~~~~~~~
                         internal_create_property
/usr/local/include/OpenVolumeMesh/Core/ResourceManagerT_impl.hh:226:49: error: expected primary-expression before ',' token
         auto existing = internal_find_property<T, EntityTag>(_prop.name());
                                                 ^
In file included from /usr/local/include/OpenVolumeMesh/FileManager/FileManager.hh:182:0,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:14:
/usr/local/include/OpenVolumeMesh/FileManager/FileManagerT_impl.hh: In member function 'bool OpenVolumeMesh::IO::FileManager::readFile(const string&, MeshT&, bool, bool) const':
/usr/local/include/OpenVolumeMesh/FileManager/FileManagerT_impl.hh:349:26: error: 'make_unique' is not a member of 'std'
     auto read_buf = std::make_unique<std::array<char, 0x10000>>();
                          ^~~~~~~~~~~
/usr/local/include/OpenVolumeMesh/FileManager/FileManagerT_impl.hh:349:26: note: suggested alternative: '__unique'
     auto read_buf = std::make_unique<std::array<char, 0x10000>>();
                          ^~~~~~~~~~~
                          __unique
/usr/local/include/OpenVolumeMesh/FileManager/FileManagerT_impl.hh:349:62: error: expected primary-expression before '>' token
     auto read_buf = std::make_unique<std::array<char, 0x10000>>();
                                                              ^~
/usr/local/include/OpenVolumeMesh/FileManager/FileManagerT_impl.hh:349:65: error: expected primary-expression before ')' token
     auto read_buf = std::make_unique<std::array<char, 0x10000>>();
                                                                 ^
In file included from /usr/local/include/OpenVolumeMesh/Mesh/PolyhedralMesh.hh:37:0,
                 from /tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:12:
/usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh: In instantiation of 'OpenVolumeMesh::GeometryKernelT<VecT> OpenVolumeMesh::GeometryKernel<VecT, TopologyKernelT>::make_prop() [with VecT = OpenVolumeMesh::Geometry::VectorT<float, 3>; TopologyKernelT = OpenVolumeMesh::TopologyKernel; OpenVolumeMesh::GeometryKernelT<VecT> = OpenVolumeMesh::PropertyPtr<OpenVolumeMesh::Geometry::VectorT<float, 3>, OpenVolumeMesh::Entity::Vertex>]':
/usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:62:30:   required from 'OpenVolumeMesh::GeometryKernel<VecT, TopologyKernelT>::GeometryKernel() [with VecT = OpenVolumeMesh::Geometry::VectorT<float, 3>; TopologyKernelT = OpenVolumeMesh::TopologyKernel]'
/tmp/NeRF-Editing/OpenVolumeMesh/simple_mesh/simple_mesh.cpp:67:23:   required from here
/usr/local/include/OpenVolumeMesh/Core/GeometryKernel.hh:217:36: error: 'class OpenVolumeMesh::GeometryKernel<OpenVolumeMesh::Geometry::VectorT<float, 3>, OpenVolumeMesh::TopologyKernel>' has no member named 'create_shared_property'; did you mean 'create_private_property'?
         auto prop = this->template create_shared_property<VecT, Entity::Vertex>("ovm:position", VecT(0));
                     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                     create_private_property
CMakeFiles/simple_mesh.dir/build.make:75: recipe for target 'CMakeFiles/simple_mesh.dir/simple_mesh/simple_mesh.cpp.o' failed
make[2]: *** [CMakeFiles/simple_mesh.dir/simple_mesh/simple_mesh.cpp.o] Error 1
CMakeFiles/Makefile2:82: recipe for target 'CMakeFiles/simple_mesh.dir/all' failed
make[1]: *** [CMakeFiles/simple_mesh.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2

I use the following command.

$ cd /tmp && \
    git clone --recursive https://www.graphics.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh.git && \
    cd /tmp/OpenVolumeMesh && \
    /opt/conda/bin/cmake . && make && make install

$ cd OpenVolumeMesh && /opt/conda/bin/cmake . && make
commented

I found the difference of C++ version caused the error.
Sorry.

I found the difference of C++ version caused the error. Sorry.

Hello, I am having the same problem.. Could you please share how you solve the problem?
I have tried gcc-7, gcc-8, and gcc-9 and none of them solved the problem.

I solved the problem by changing the cmakelist.txt file.
All I did are these 3 things and the whole cmakelist file is as follows.

  1. There is no cpp file, so changed it to cc
  2. C++ version from 14 to 17
  3. Change the execution file name from simple_mesh to simple_mesh_exe
cmake_minimum_required(VERSION 3.12 FATAL_ERROR) 
cmake_policy(VERSION 3.12.0)
project(OpenVolumeMeshExamples)

if (NOT TARGET OpenVolumeMesh::OpenVolumeMesh)
    find_package(OpenVolumeMesh REQUIRED)
endif()

# Add target for first example
add_executable(simple_mesh_exe simple_mesh/simple_mesh.cc)

target_link_libraries(simple_mesh_exe OpenVolumeMesh::OpenVolumeMesh)

set(OVM_CXX_STANDARD 17 CACHE STRING "C++ standard version to use")
set_property(CACHE OVM_CXX_STANDARD PROPERTY STRINGS 17 20)

set_target_properties (simple_mesh_exe PROPERTIES
    CXX_STANDARD ${OVM_CXX_STANDARD}
    CXX_STANDARD_REQUIRED YES
    CXX_EXTENSIONS NO
)