Как мы можем создать класс с одним тоном в c ++ / winrt?
Я сделал это в c ++ / cx. Почему не работает на c ++. Winrt?
Как я пытаюсь это сделать:
IDL:
import "BindableBase.idl";
namespace WinrtApp2
{
[bindable]
[default_interface]
runtimeclass MainViewModel : BindableBase
{
MainViewModel();
String MyProperty;
}
}
Заголовок:
namespace winrt::WinrtApp2::implementation
{
struct MainViewModel : MainViewModelT<MainViewModel>
{
public:
static MainViewModel Instance();
private:
MainViewModel(){};
};
}
Cpp:
MainViewModel MainViewModel::Instance()
{
static MainViewModel instance = MainViewModel();
return instance;
}
Ошибка компилятора:
WinrtApp2\Generated Files\winrt\base.h(7402,5): error C2248: 'winrt::WinrtApp2::implementation::MainViewModel::MainViewModel': cannot access private member declared in class 'winrt::WinrtApp2::implementation::MainViewModel'
WinrtApp2\MainViewModel.h(16): message : see declaration of 'winrt::WinrtApp2::implementation::MainViewModel::MainViewModel'
WinrtApp2\MainViewModel.h(9): message : see declaration of 'winrt::WinrtApp2::implementation::MainViewModel'
WinrtApp2\Generated Files\MainViewModel.g.cpp(10): message : see reference to function template instantiation 'auto winrt::make<winrt::WinrtApp2::implementation::MainViewModel,>(void)' being compiled
Документация c ++ / winrt очень плоха для понимания / поиска чего-либо.