1

以下代码使用 Xcode 6.3.2 而不是 Visual Studio 2013 编译。

#include <cstdint>
#include <memory>

class Y
{
public:
    Y(uint32_t i) : m_i(i)
    {
    }

private:
    uint32_t m_i;
};

class X
{
public:
    X() = default;

private:
    const uint32_t m_dimension = 2;
    const std::shared_ptr<Y> m_y = std::make_shared<Y>(m_dimension);
};

报告的错误是:

error C2783: 'std::shared_ptr<_Ty> std::make_shared(_Types &&...)' : could not deduce template argument for '_Ty'

这可能是 Visual Studio 中的编译器错误还是代码有问题?

4

2 回答 2

2

我在 VS2013 更新 4 中遇到了同样的问题,并通过将其更新到版本 5 解决了这个问题。

于 2015-10-07T13:53:01.907 回答
2

似乎您不是唯一遇到此问题的人 - 此错误已记录在案!较新版本的 Visual Studio 不应该有这个问题(Visual Studio 2013 的更新 4 似乎是起点)。

于 2015-07-20T16:12:38.730 回答