tsa/vu8 — Issue #6: More visual studio compiler errors
Author: nicokruithof
Created: 2012-01-18 21:05:54+00:00
State: open

The following code compiles fine on linux (gcc), but gives an error on windows (visual studio)

```c++
class Test
{
public:
Test()
{
std::cout << "Test()" << std::endl;
}
void open(const std::string &filename)
{
std::cout << "Opening: " << filename << std::endl;
}
void close()
{
std::cout << "Closing" << std::endl;
}
};

...
vu8::Class renderer_class;
renderer_class
.Set("close")
.Set("open");
```

The error is:

```c++
error C2440: 'specialization' : cannot convert from 'void (__thiscall Test::* )(void)' to 'void (__thiscall Test::* const )(const v8::Arguments &)(void)'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
error C2973: 'vu8::Class::Set' : invalid template argument 'void (__thiscall Test::* )(void)'
with
[
T=Test
]
vu8/Class.hpp(168) : see declaration of 'vu8::Class::Set'
with
[
T=Test
]
error C2440: 'specialization' : cannot convert from 'void (__thiscall Test::* )(void)' to 'void (__thiscall Test::* const )(void) const'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
```