小编Kat*_*ate的帖子

在匿名类中返回 *this 时,“自动”返回类型的类型是什么?

在这段代码中:

struct
{
    auto operator[](const char*)
    {
        return *this;
    }

} m_some_class;
Run Code Online (Sandbox Code Playgroud)

这里的类型是什么auto

c++ class auto c++11

35
推荐指数
4
解决办法
2216
查看次数

有没有更好的方法来处理异常?try-catch 块真的很丑

我读了这篇文章并发现处理异常很重要,我使用nlohmann::json(来自github)并且几乎在我的大多数成员函数中都使用nlohmann::json::parse并且nlohmann::json::dump如果输入有问题则有机会抛出异常。

所以我需要处理那些抛出异常的机会:

bool my_class::function(const std::string& input) const
try
{
    using namespace nlohmann;

    const auto result = json::parse(input);
    const auto name = result["name"].dump();

    /* and ... */
}
catch (const std::exception& e)
{
    /* handle exception */
}
Run Code Online (Sandbox Code Playgroud)

但我想知道代码的哪一行抛出异常,所以如果我写这样的东西:

bool my_class::function(const std::string& input) const
{
    using namespace nlohmann;

    try
    {
        const auto result = json::parse(input);
    }
    catch(const std::exception& e)
    {
        /* handle exception */
    }

    try
    {
        const auto name = …
Run Code Online (Sandbox Code Playgroud)

c++ exception nlohmann-json

4
推荐指数
1
解决办法
691
查看次数

标签 统计

c++ ×2

auto ×1

c++11 ×1

class ×1

exception ×1

nlohmann-json ×1