Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSVR-Vive doesn't compile when using XUbuntu 16.04 #38

Open
ghost opened this issue Feb 27, 2018 · 5 comments
Open

OSVR-Vive doesn't compile when using XUbuntu 16.04 #38

ghost opened this issue Feb 27, 2018 · 5 comments

Comments

@ghost
Copy link

ghost commented Feb 27, 2018

synapse@darkside:~/Desktop/OSVR-Vive/build$ make
Scanning dependencies of target ViveLoaderLib
[ 4%] Building CXX object CMakeFiles/ViveLoaderLib.dir/ChaperoneData.cpp.o
[ 8%] Building CXX object CMakeFiles/ViveLoaderLib.dir/DriverContext.cpp.o
[ 13%] Building CXX object CMakeFiles/ViveLoaderLib.dir/DriverLoader.cpp.o
[ 17%] Building CXX object CMakeFiles/ViveLoaderLib.dir/DriverLog.cpp.o
[ 21%] Building CXX object CMakeFiles/ViveLoaderLib.dir/DriverManager.cpp.o
[ 26%] Building CXX object CMakeFiles/ViveLoaderLib.dir/FindDriver.cpp.o
[ 30%] Building CXX object CMakeFiles/ViveLoaderLib.dir/Properties.cpp.o
In file included from /usr/include/c++/5/bits/hashtable.h:35:0,
from /usr/include/c++/5/unordered_map:47,
from /home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:38,
from /home/synapse/Desktop/OSVR-Vive/Properties.h:30,
from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/usr/include/c++/5/bits/hashtable_policy.h: In instantiation of ‘struct std::detail::is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> >’:
/usr/include/c++/5/typetraits:137:12: required from ‘struct std::__and<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::detail::is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > >’
/usr/include/c++/5/typetraits:148:38: required from ‘struct std::__not<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::detail::is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
/usr/include/c++/5/bits/unordered_map.h:100:66: required from ‘class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >’
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:47:63: required from ‘class osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >’
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:100:15: required from here
/usr/include/c++/5/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<vr::ETrackedDeviceProperty>) (const vr::ETrackedDeviceProperty&)’
noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
^
In file included from /usr/include/c++/5/bits/move.h:57:0,
from /usr/include/c++/5/bits/stl_pair.h:59,
from /usr/include/c++/5/bits/stl_algobase.h:64,
from /usr/include/c++/5/memory:62,
from /home/synapse/Desktop/OSVR-Core/inc/osvr/Util/SharedPtr.h:63,
from /home/synapse/Desktop/OSVR-Core/inc/osvr/Util/Log.h:32,
from /home/synapse/Desktop/OSVR-Core/inc/osvr/Util/Logger.h:33,
from /home/synapse/Desktop/OSVR-Vive/Properties.h:29,
from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/usr/include/c++/5/typetraits: In instantiation of ‘struct std::__not<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::detail::is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’:
/usr/include/c++/5/bits/unordered_map.h:100:66: required from ‘class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<
@ghost
Copy link
Author

ghost commented Feb 27, 2018

synapse@darkside:~/Desktop/OSVR-Vive/build$ g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@ghost ghost changed the title OSVR-Vive Doesn't compile when using Xbuntu 16.04 OSVR-Vive Doesn't compile when using XUbuntu 16.04 Feb 27, 2018
@ghost ghost changed the title OSVR-Vive Doesn't compile when using XUbuntu 16.04 OSVR-Vive doesn't compile when using XUbuntu 16.04 Feb 27, 2018
@ghost
Copy link
Author

ghost commented Feb 27, 2018

OSVR/OSVR-Docs#125

@ghost
Copy link
Author

ghost commented Feb 27, 2018

synapse@darkside:~/Desktop$ sudo apt-get install gcc-7 g++-7
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  gcc-5-base:i386
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  cpp-7 gcc-7-base gcc-7-base:i386 libasan4 libatomic1 libcc1-0 libcilkrts5 libgcc-7-dev libgcc1 libgcc1:i386 libgomp1 libitm1 liblsan0 libmpx2 libquadmath0 libstdc++-7-dev
  libstdc++6 libstdc++6:i386 libtsan0 libubsan0
Suggested packages:
  gcc-7-locales g++-7-multilib gcc-7-doc libstdc++6-7-dbg gcc-7-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg libstdc++-7-doc
The following NEW packages will be installed:
  cpp-7 g++-7 gcc-7 gcc-7-base gcc-7-base:i386 libasan4 libgcc-7-dev libmpx2 libstdc++-7-dev
The following packages will be upgraded:
  libatomic1 libcc1-0 libcilkrts5 libgcc1 libgcc1:i386 libgomp1 libitm1 liblsan0 libquadmath0 libstdc++6 libstdc++6:i386 libtsan0 libubsan0
13 upgraded, 9 newly installed, 0 to remove and 34 not upgraded.
Need to get 107 MB of archives.
After this operation, 508 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 gcc-7-base amd64 7.1.0-10ubuntu1~16.04.york0 [39.3 kB]
Get:2 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main i386 gcc-7-base i386 7.1.0-10ubuntu1~16.04.york0 [39.3 kB]
Get:3 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main i386 libgcc1 i386 1:7.1.0-10ubuntu1~16.04.york0 [47.0 kB]
Get:4 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libgcc1 amd64 1:7.1.0-10ubuntu1~16.04.york0 [39.4 kB]
Get:5 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main i386 libstdc++6 i386 7.1.0-10ubuntu1~16.04.york0 [436 kB]
Get:6 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libstdc++6 amd64 7.1.0-10ubuntu1~16.04.york0 [403 kB]
Get:7 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 cpp-7 amd64 7.1.0-10ubuntu1~16.04.york0 [33.0 MB]                                                        
Get:8 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libcc1-0 amd64 7.1.0-10ubuntu1~16.04.york0 [38.6 kB]                                                     
Get:9 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libgomp1 amd64 7.1.0-10ubuntu1~16.04.york0 [76.3 kB]                                                     
Get:10 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libitm1 amd64 7.1.0-10ubuntu1~16.04.york0 [27.5 kB]                                                     
Get:11 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libatomic1 amd64 7.1.0-10ubuntu1~16.04.york0 [8,950 B]                                                  
Get:12 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libasan4 amd64 7.1.0-10ubuntu1~16.04.york0 [353 kB]                                                     
Get:13 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 liblsan0 amd64 7.1.0-10ubuntu1~16.04.york0 [127 kB]                                                     
Get:14 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libtsan0 amd64 7.1.0-10ubuntu1~16.04.york0 [275 kB]                                                     
Get:15 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libubsan0 amd64 7.1.0-10ubuntu1~16.04.york0 [119 kB]                                                    
Get:16 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libcilkrts5 amd64 7.1.0-10ubuntu1~16.04.york0 [42.4 kB]                                                 
Get:17 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libmpx2 amd64 7.1.0-10ubuntu1~16.04.york0 [11.8 kB]                                                     
Get:18 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libquadmath0 amd64 7.1.0-10ubuntu1~16.04.york0 [133 kB]                                                 
Get:19 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libgcc-7-dev amd64 7.1.0-10ubuntu1~16.04.york0 [2,367 kB]                                               
Get:20 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 gcc-7 amd64 7.1.0-10ubuntu1~16.04.york0 [32.4 MB]                                                       
Get:21 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 libstdc++-7-dev amd64 7.1.0-10ubuntu1~16.04.york0 [1,455 kB]                                            
Get:22 http://ppa.launchpad.net/jonathonf/gcc-7.1/ubuntu xenial/main amd64 g++-7 amd64 7.1.0-10ubuntu1~16.04.york0 [35.4 MB]                                                       
Fetched 107 MB in 6min 26s (277 kB/s)                                                                                                                                              
Selecting previously unselected package gcc-7-base:amd64.
(Reading database ... 252930 files and directories currently installed.)
Preparing to unpack .../gcc-7-base_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking gcc-7-base:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Selecting previously unselected package gcc-7-base:i386.
Preparing to unpack .../gcc-7-base_7.1.0-10ubuntu1~16.04.york0_i386.deb ...
Unpacking gcc-7-base:i386 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up gcc-7-base:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up gcc-7-base:i386 (7.1.0-10ubuntu1~16.04.york0) ...
(Reading database ... 252940 files and directories currently installed.)
Preparing to unpack .../libgcc1_1%3a7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
De-configuring libgcc1:i386 (1:6.0.1-0ubuntu1) ...
Unpacking libgcc1:amd64 (1:7.1.0-10ubuntu1~16.04.york0) over (1:6.0.1-0ubuntu1) ...
Preparing to unpack .../libgcc1_1%3a7.1.0-10ubuntu1~16.04.york0_i386.deb ...
Unpacking libgcc1:i386 (1:7.1.0-10ubuntu1~16.04.york0) over (1:6.0.1-0ubuntu1) ...
Preparing to unpack .../libstdc++6_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
De-configuring libstdc++6:i386 (5.4.0-6ubuntu1~16.04.9) ...
Unpacking libstdc++6:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libstdc++6_7.1.0-10ubuntu1~16.04.york0_i386.deb ...
Unpacking libstdc++6:i386 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package cpp-7.
Preparing to unpack .../cpp-7_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking cpp-7 (7.1.0-10ubuntu1~16.04.york0) ...
Preparing to unpack .../libcc1-0_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libcc1-0:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libgomp1_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libgomp1:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libitm1_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libitm1:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libatomic1_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libatomic1:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package libasan4:amd64.
Preparing to unpack .../libasan4_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libasan4:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Preparing to unpack .../liblsan0_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking liblsan0:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libtsan0_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libtsan0:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libubsan0_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libubsan0:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Preparing to unpack .../libcilkrts5_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libcilkrts5:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package libmpx2:amd64.
Preparing to unpack .../libmpx2_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libmpx2:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Preparing to unpack .../libquadmath0_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libquadmath0:amd64 (7.1.0-10ubuntu1~16.04.york0) over (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package libgcc-7-dev:amd64.
Preparing to unpack .../libgcc-7-dev_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libgcc-7-dev:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Selecting previously unselected package gcc-7.
Preparing to unpack .../gcc-7_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking gcc-7 (7.1.0-10ubuntu1~16.04.york0) ...
Selecting previously unselected package libstdc++-7-dev:amd64.
Preparing to unpack .../libstdc++-7-dev_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking libstdc++-7-dev:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Selecting previously unselected package g++-7.
Preparing to unpack .../g++-7_7.1.0-10ubuntu1~16.04.york0_amd64.deb ...
Unpacking g++-7 (7.1.0-10ubuntu1~16.04.york0) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libgcc1:i386 (1:7.1.0-10ubuntu1~16.04.york0) ...
Setting up libgcc1:amd64 (1:7.1.0-10ubuntu1~16.04.york0) ...
Setting up libstdc++6:i386 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libstdc++6:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up cpp-7 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libcc1-0:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libgomp1:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libitm1:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libatomic1:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libasan4:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up liblsan0:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libtsan0:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libubsan0:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libcilkrts5:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libmpx2:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libquadmath0:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libgcc-7-dev:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up gcc-7 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up libstdc++-7-dev:amd64 (7.1.0-10ubuntu1~16.04.york0) ...
Setting up g++-7 (7.1.0-10ubuntu1~16.04.york0) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
synapse@darkside:~/Desktop$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

synapse@darkside:~/Desktop$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

@ghost
Copy link
Author

ghost commented Feb 27, 2018

synapse@darkside:~/Desktop/OSVR-Vive/build$ make CC=/usr/bin/gcc-7
[  4%] Building CXX object CMakeFiles/ViveLoaderLib.dir/Properties.cpp.o
In file included from /usr/include/c++/5/bits/hashtable.h:35:0,
                 from /usr/include/c++/5/unordered_map:47,
                 from /home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:38,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.h:30,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/usr/include/c++/5/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> >’:
/usr/include/c++/5/type_traits:137:12:   required from ‘struct std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > >’
/usr/include/c++/5/type_traits:148:38:   required from ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
/usr/include/c++/5/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >’
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:47:63:   required from ‘class osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >’
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:100:15:   required from here
/usr/include/c++/5/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<vr::ETrackedDeviceProperty>) (const vr::ETrackedDeviceProperty&)’
  noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
                                  ^
In file included from /usr/include/c++/5/bits/move.h:57:0,
                 from /usr/include/c++/5/bits/stl_pair.h:59,
                 from /usr/include/c++/5/bits/stl_algobase.h:64,
                 from /usr/include/c++/5/memory:62,
                 from /home/synapse/Desktop/OSVR-Core/inc/osvr/Util/SharedPtr.h:63,
                 from /home/synapse/Desktop/OSVR-Core/inc/osvr/Util/Log.h:32,
                 from /home/synapse/Desktop/OSVR-Core/inc/osvr/Util/Logger.h:33,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.h:29,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/usr/include/c++/5/type_traits: In instantiation of ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’:
/usr/include/c++/5/bits/unordered_map.h:100:66:   required from ‘class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >’
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:47:63:   required from ‘class osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >’
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:100:15:   required from here
/usr/include/c++/5/type_traits:148:38: error: ‘value’ is not a member of ‘std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > >: public integral_constant<bool, !_Pp::value>
                                      ^
In file included from /usr/include/c++/5/unordered_map:48:0,
                 from /home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:38,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.h:30,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/usr/include/c++/5/bits/unordered_map.h: In instantiation of ‘class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >’:
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:47:63:   required from ‘class osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >’
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:100:15:   required from here
/usr/include/c++/5/bits/unordered_map.h:100:66: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef __umap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc>  _Hashtable;
                                                                  ^
/usr/include/c++/5/bits/unordered_map.h:107:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::key_type key_type;
                                             ^
/usr/include/c++/5/bits/unordered_map.h:108:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::value_type value_type;
                                               ^
/usr/include/c++/5/bits/unordered_map.h:109:48: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::mapped_type mapped_type;
                                                ^
/usr/include/c++/5/bits/unordered_map.h:110:43: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::hasher hasher;
                                           ^
/usr/include/c++/5/bits/unordered_map.h:111:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::key_equal key_equal;
                                              ^
/usr/include/c++/5/bits/unordered_map.h:112:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::allocator_type allocator_type;
                                                   ^
/usr/include/c++/5/bits/unordered_map.h:117:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::pointer  pointer;
                                             ^
/usr/include/c++/5/bits/unordered_map.h:118:50: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::const_pointer const_pointer;
                                                  ^
/usr/include/c++/5/bits/unordered_map.h:119:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::reference  reference;
                                               ^
/usr/include/c++/5/bits/unordered_map.h:120:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::const_reference const_reference;
                                                    ^
/usr/include/c++/5/bits/unordered_map.h:121:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::iterator  iterator;
                                              ^
/usr/include/c++/5/bits/unordered_map.h:122:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::const_iterator const_iterator;
                                                   ^
/usr/include/c++/5/bits/unordered_map.h:123:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::local_iterator local_iterator;
                                                   ^
/usr/include/c++/5/bits/unordered_map.h:124:57: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::const_local_iterator const_local_iterator;
                                                         ^
/usr/include/c++/5/bits/unordered_map.h:125:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::size_type  size_type;
                                               ^
/usr/include/c++/5/bits/unordered_map.h:126:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       typedef typename _Hashtable::difference_type difference_type;
                                                    ^
/usr/include/c++/5/bits/unordered_map.h:280:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       operator=(initializer_list<value_type> __l)
       ^
/usr/include/c++/5/bits/unordered_map.h:379:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
  emplace(_Args&&... __args)
  ^
/usr/include/c++/5/bits/unordered_map.h:432:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       insert(const value_type& __x)
       ^
/usr/include/c++/5/bits/unordered_map.h:439:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
  insert(_Pair&& __x)
  ^
/usr/include/c++/5/bits/unordered_map.h:499:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       insert(initializer_list<value_type> __l)
       ^
/usr/include/c++/5/bits/unordered_map.h:645:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       equal_range(const key_type& __x)
       ^
/usr/include/c++/5/bits/unordered_map.h:649:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<vr::ETrackedDeviceProperty> >, std::__detail::__is_noexcept_hash<vr::ETrackedDeviceProperty, std::hash<vr::ETrackedDeviceProperty> > > >’
       equal_range(const key_type& __x) const
       ^
In file included from /home/synapse/Desktop/OSVR-Vive/Properties.h:30:0,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘bool osvr::util::KVDataStore<KeyType, ValueVariant>::containsAnyType(const key_type&) const [with KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:100:47:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:75:37: error: ‘const container_type {aka const class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘find’
             auto it = data_.find(key);
                                     ^
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:76:23: error: ‘const container_type {aka const class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘end’
             return it != data_.end();
                       ^
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘const value_variant_type& osvr::util::KVDataStore<KeyType, ValueVariant>::getVariant(const key_type&) const [with KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::value_variant_type = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:104:49:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:85:37: error: ‘const container_type {aka const class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘find’
             auto it = data_.find(key);
                                     ^
In file included from /usr/include/boost/assert.hpp:54:0,
                 from /usr/include/boost/move/detail/type_traits.hpp:33,
                 from /usr/include/boost/move/traits.hpp:31,
                 from /usr/include/boost/move/utility.hpp:29,
                 from /usr/include/boost/move/move.hpp:29,
                 from /usr/include/boost/variant/detail/move.hpp:28,
                 from /usr/include/boost/variant/detail/initializer.hpp:23,
                 from /usr/include/boost/variant/variant.hpp:30,
                 from /usr/include/boost/variant.hpp:17,
                 from /home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:32,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.h:30,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:86:23: error: ‘const container_type {aka const class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘end’
             assert(it != data_.end() &&
                       ^
In file included from /home/synapse/Desktop/OSVR-Vive/Properties.h:30:0,
                 from /home/synapse/Desktop/OSVR-Vive/Properties.cpp:26:
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = float; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:200:45:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
             data_[key] = wrappedVal;
                  ^
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = int; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:205:43:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = long unsigned int; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:210:43:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = bool; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:215:43:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = std::__cxx11::basic_string<char>; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:220:60:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = vr::HmdMatrix34_t; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:226:43:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::set(const key_type&, const T&) [with T = vr::HmdVector2_t; KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:232:43:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:53:18: error: no match for ‘operator[]’ (operand types are ‘osvr::util::KVDataStore<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> >::container_type {aka std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ and ‘const key_type {aka const vr::ETrackedDeviceProperty}’)
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h: In instantiation of ‘void osvr::util::KVDataStore<KeyType, ValueVariant>::erase(const key_type&) [with KeyType = vr::ETrackedDeviceProperty; ValueVariant = boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>; osvr::util::KVDataStore<KeyType, ValueVariant>::key_type = vr::ETrackedDeviceProperty]’:
/home/synapse/Desktop/OSVR-Vive/Properties.cpp:244:36:   required from here
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:110:37: error: ‘using container_type = class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > > {aka class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘find’
             auto it = data_.find(key);
                                     ^
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:111:20: error: ‘using container_type = class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > > {aka class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘end’
             if (it == data_.end()) {
                    ^
/home/synapse/Desktop/OSVR-Vive/vendor/util-headers/util/KVDataStore.h:115:13: error: ‘using container_type = class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > > {aka class std::unordered_map<vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t>, std::hash<vr::ETrackedDeviceProperty>, std::equal_to<vr::ETrackedDeviceProperty>, std::allocator<std::pair<const vr::ETrackedDeviceProperty, boost::variant<bool, float, int, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vr::HmdMatrix34_t, vr::HmdVector2_t> > > >}’ has no member named ‘erase’
             data_.erase(it);
             ^
CMakeFiles/ViveLoaderLib.dir/build.make:206: recipe for target 'CMakeFiles/ViveLoaderLib.dir/Properties.cpp.o' failed
make[2]: *** [CMakeFiles/ViveLoaderLib.dir/Properties.cpp.o] Error 1
CMakeFiles/Makefile2:141: recipe for target 'CMakeFiles/ViveLoaderLib.dir/all' failed
make[1]: *** [CMakeFiles/ViveLoaderLib.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

@asymingt
Copy link

asymingt commented Jun 14, 2018

This diff fixes the compile issue, but at the cost of performance.

diff --git a/vendor/util-headers/util/KVDataStore.h b/vendor/util-headers/util/KVDataStore.h
index 3d7a0eb..5be1c18 100644
--- a/vendor/util-headers/util/KVDataStore.h
+++ b/vendor/util-headers/util/KVDataStore.h
@@ -35,7 +35,7 @@
 #include <cstdint>
 #include <stdexcept>
 #include <string>
-#include <unordered_map>
+#include <map>
 
 namespace osvr {
 namespace util {
@@ -43,7 +43,7 @@ namespace util {
       public:
         using key_type = KeyType;
         using value_variant_type = ValueVariant;
-        using container_type = std::unordered_map<key_type, value_variant_type>;
+        using container_type = std::map<key_type, value_variant_type>;
         using value_type = typename container_type::value_type;
 
         /// Sets the value associated with the key. Overwrites any existing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant