VulkanSurface.h:
#include "VulkanInstance.h"
class VulkanSurface {
public:
//Only constructor
VulkanSurface(VulkanInstance &instance); //line 14
};
VulkanSurface.cpp:
VulkanSurface::VulkanSurface(VulkanInstance &instance) {
//...
}
VulkanInstance.cpp:
VulkanInstance::VulkanInstance(const std::vector<const char*> validationLayers) :
validationLayers(validationLayers) {
...
}
main.cpp:
instance = std::make_unique<VulkanInstance>(validationLayers);
surface = std::make_unique<VulkanSurface>(*instance); //line 104
Это не показывает ошибок в VisualStudio в виде красной волнистой линии, но компиляция завершается неудачно со следующим:
1>main.cpp
1>c:\users\karlovsky120\source\repos\vulkanproject\vulkanproject\vulkansurface.h(14): error C2061: syntax error: identifier 'VulkanInstance'
1>c:\users\karlovsky120\source\repos\vulkanproject\vulkanproject\main.cpp(104): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'VulkanSurface'
1>c:\users\karlovsky120\source\repos\vulkanproject\vulkanproject\main.cpp(104): note: No constructor could take the source type, or constructor overload resolution was ambiguous
1>c:\users\karlovsky120\source\repos\vulkanproject\vulkanproject\main.cpp(104): error C2672: 'std::make_unique': no matching overloaded function found
1>VulkanInstance.cpp
1>c:\users\karlovsky120\source\repos\vulkanproject\vulkanproject\vulkansurface.h(14): error C2061: syntax error: identifier 'VulkanInstance'