Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename T>
- void hash_queue(queue<size_t>& q){
- q.push( typeid(T).hash_code() );
- }
- template<typename T, typename... Ts>
- void hash_queue(queue<size_t>& q){
- hash_queue<Ts...>(q);
- q.push( typeid(T).hash_code() );
- }
- int main(){
- queue<size_t> q;
- hash_queue<int, float, double>(q);
- return 0;
- }
- main.cpp: In instantiation of ‘void hash_queue(std::queue<long unsigned int>&) [with T = float; Ts = {double}]’:
- main.cpp:19:22: required from ‘void hash_queue(std::queue<long unsigned int>&) [with T = int; Ts = {float, double}]’
- main.cpp:25:35: required from here
- main.cpp:19:22: error: call of overloaded ‘hash_queue(std::queue<long unsigned int>&)’ is ambiguous
- hash_queue<Ts...>(q);
- ^
- main.cpp:19:22: note: candidates are:
- main.cpp:13:6: note: void hash_queue(std::queue<long unsigned int>&) [with T = double]
- void hash_queue(queue<size_t>& q){
- ^
- main.cpp:18:6: note: void hash_queue(std::queue<long unsigned int>&) [with T = double; Ts = {}]
- void hash_queue(queue<size_t>& q){
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement