{"action":"opened","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3568","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3568/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3568/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3568/events","html_url":"https://github.com/RobotLocomotion/drake/issues/3568","id":178877035,"number":3568,"title":"`CompareMatrices` almost works for integer scalar types, but doesn't","user":{"login":"tkoolen","id":2585880,"avatar_url":"https://avatars.githubusercontent.com/u/2585880?v=3","gravatar_id":"","url":"https://api.github.com/users/tkoolen","html_url":"https://github.com/tkoolen","followers_url":"https://api.github.com/users/tkoolen/followers","following_url":"https://api.github.com/users/tkoolen/following{/other_user}","gists_url":"https://api.github.com/users/tkoolen/gists{/gist_id}","starred_url":"https://api.github.com/users/tkoolen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tkoolen/subscriptions","organizations_url":"https://api.github.com/users/tkoolen/orgs","repos_url":"https://api.github.com/users/tkoolen/repos","events_url":"https://api.github.com/users/tkoolen/events{/privacy}","received_events_url":"https://api.github.com/users/tkoolen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-23T13:25:38Z","updated_at":"2016-09-23T13:25:38Z","closed_at":null,"body":"A call to `CompareMatrices` with integer matrix arguments compiles on all platforms except win32, and I believe that visual studio is right to complain.\r\n\r\nSee https://drake-cdash.csail.mit.edu/index.php?project=Drake&showfilters=1&filtercount=2&showfilters=1&filtercombine=and&field1=label&compare1=61&value1=jenkins-windows-msvc-ninja-32-experimental-3567-debug-4938&field2=buildstarttime&compare2=84&value2=now for a build that errored.\r\n\r\nError:\r\n```\r\nC:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt\\math.h(403): error C2668: 'fpclassify': ambiguous call to overloaded function\r\n\r\nC:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt\\math.h(288): note: could be 'int fpclassify(long double) throw()'\r\n\r\nC:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt\\math.h(283): note: or       'int fpclassify(double) throw()'\r\n\r\nC:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt\\math.h(278): note: or       'int fpclassify(float) throw()'\r\n\r\nC:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.10240.0\\ucrt\\math.h(403): note: while trying to match the argument list '(int)'\r\n\r\nC:\\Users\\Administrator\\workspace\\experimental\\0b4ef046\\drake/common/eigen_matrix_compare.h(53): note: see reference to function template instantiation 'bool isnan<int>(_Ty) throw()' being compiled\r\n```\r\nEven though http://en.cppreference.com/w/cpp/numeric/math/isnan describes a \r\n```c++\r\nbool isnan( Integral arg )\r\n```\r\nI believe the standard doesn't require the existence of a function with that signature. It only requires `isnan` functions taking `float`, `double`, or `long double` arguments (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf)."}}
{"actor":{"display_login":"tkoolen"}}