{"action":"opened","issue":{"url":"https://api.github.com/repos/dealii/dealii/issues/3597","repository_url":"https://api.github.com/repos/dealii/dealii","labels_url":"https://api.github.com/repos/dealii/dealii/issues/3597/labels{/name}","comments_url":"https://api.github.com/repos/dealii/dealii/issues/3597/comments","events_url":"https://api.github.com/repos/dealii/dealii/issues/3597/events","html_url":"https://github.com/dealii/dealii/issues/3597","id":189888074,"number":3597,"title":"Remove usage of typeid, introduce type traits","user":{"login":"tamiko","id":3432917,"avatar_url":"https://avatars.githubusercontent.com/u/3432917?v=3","gravatar_id":"","url":"https://api.github.com/users/tamiko","html_url":"https://github.com/tamiko","followers_url":"https://api.github.com/users/tamiko/followers","following_url":"https://api.github.com/users/tamiko/following{/other_user}","gists_url":"https://api.github.com/users/tamiko/gists{/gist_id}","starred_url":"https://api.github.com/users/tamiko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tamiko/subscriptions","organizations_url":"https://api.github.com/users/tamiko/orgs","repos_url":"https://api.github.com/users/tamiko/repos","events_url":"https://api.github.com/users/tamiko/events{/privacy}","received_events_url":"https://api.github.com/users/tamiko/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-11-16T23:52:19Z","updated_at":"2016-11-16T23:52:19Z","closed_at":null,"body":"A number of places in the library use constructs of the form\r\n(example `include/deal.II/lac/constraint_matrix.templates.h`)\r\n```\r\n 856   // FIXME: This has to be refactored into a typetrait                           \r\n 857   if ((typeid(vec) != typeid(Vector<double>)) &&                                 \r\n 858       (typeid(vec) != typeid(Vector<float>)) &&                                  \r\n 859       (typeid(vec) != typeid(Vector<std::complex<double> >)) &&                  \r\n 860       (typeid(vec) != typeid(BlockVector<double>)) &&                            \r\n 861       (typeid(vec) != typeid(BlockVector<float>)) &&                             \r\n 862       (typeid(vec) != typeid(BlockVector<std::complex<double> >)) &&             \r\n 863       (typeid(vec) != typeid(LinearAlgebra::Vector<double>)) &&                  \r\n 864       (typeid(vec) != typeid(LinearAlgebra::Vector<float>)) &&                   \r\n 865       (typeid(vec) != typeid(LinearAlgebra::Vector<std::complex<double> >)))\r\n```\r\n\r\nAll of these instances should be refactored into proper typetraits, e.g.\r\n```\r\nif(is_basic_vector<...>::value) {\r\n  ...\r\n}\r\n```\r\n\r\nIn reference to #3592"}}
{"actor":{"display_login":"tamiko"}}