【问题标题】:warning: control reaches end of non-void function [-Wreturn-type]警告:控制到达非 void 函数的结尾 [-Wreturn-type]
【发布时间】:2013-04-29 01:58:55
【问题描述】:

错误信息在标题中。有谁知道怎么了?我想清除此警告。我一无所知。

   const std::string loadShaderFromFile(std::string shaderFilePath) {
        // load file
        std::fstream shaderFile(shaderFilePath.c_str(), std::ios::in);

        if(shaderFile.is_open()) {
            // help store the files buffer?
            std::stringstream shaderFileBuffer;
            // get files data by streaming the files stream into our buffer stream.
            shaderFileBuffer << shaderFile.rdbuf();
            // buffer contains the files data
            return shaderFileBuffer.str();
        }
    }

【问题讨论】:

    标签: c++ string file stream load


    【解决方案1】:

    如果shaderFile.is_open() 返回false,您的函数将不会到达return 语句。如果shaderFile 没有打开,你希望你的函数返回什么?也许是一个空字符串。也许它应该抛出一个异常(除非这是正常的事情)。

    【讨论】:

    • 大声笑@(除非这是正常情况)非常感谢!警告清除!!你罗克斯!
    猜你喜欢
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多