标题确实准确描述了我的要求。
extern "C" int foo( int bar ) { return bar; }
Run Code Online (Sandbox Code Playgroud)
从我一直在测试的内容来看,它似乎不是__cdecl, __stdcall, __fastcall,而且显然不是__thiscall。
什么是约定以及它如何运作?
谢谢。
我不完全理解变体的用法,也许有人可以清理我做错了什么(可能是我的做法).
让variant对象是两个类的_Types,都继承同一个类.
class base
{
public:
int foo;
};
class a: public base
{
int bar;
};
class b: public base
{
float bar;
};
byte variant_id = 0; // 0 for class A, 1 for class B
std::variant< base, a, b > variant;
Run Code Online (Sandbox Code Playgroud)
以下是我使用变体的方法:
void func( )
{
auto& _variant = std::get< base >( variant ); // ideally would be = variant_id ? std::get< b >( variant ) : std::get< a >( variant )
_variant.foo = 20;
if ( …Run Code Online (Sandbox Code Playgroud)