小编avi*_*ase的帖子

条件跳转或移动取决于std :: wistringstream的未初始化值

我从cppreference.com窃取了以下代码片段 并将其用于以下用途wchar_t:

#include <string>
#include <iostream>
#include <sstream>

template <typename T>
struct test_seq {};

template <>
struct test_seq<char> {
    std::string operator()() {
        return "1\n2\n3\n4\n5\n6\n7\n";
    }
};

template <>
struct test_seq<wchar_t> {
    std::wstring operator()() {
        return L"1\n2\n3\n4\n5\n6\n7\n";
    }
};

int main(int, char **) {
    using char_t = wchar_t;

    std::basic_istringstream<char_t> input;

    test_seq<char_t> seq;
    input.str(seq());

    int sum = 0;
    for (std::basic_string<char_t> token; std::getline(input, token);) {
        sum += std::stoi(token);
    }
    std::cout << "The sum is: " << sum << "\n"; …
Run Code Online (Sandbox Code Playgroud)

c++ valgrind wchar-t

5
推荐指数
1
解决办法
234
查看次数

clang6 实现 std::可选 吗?

我想使用 C++17std::optional但它似乎在 clang 中不存在:

> cat test.cxx 
#include <optional>

int main(int, char **) {
    return 0;
}
> $CXX --version | head -n1
clang version 6.0.0 (trunk 317775)
> $CXX -std=c++17 test.cxx 
test.cxx:1:10: fatal error: 'optional' file not found
#include <optional>
         ^~~~~~~~~~
1 error generated.
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我使用的是一个相当新版本的 clang,据我所知,clang 6 应该具有完整的 C++17 支持。乍一看,这似乎是一个 clang 问题,特别是因为包含<experimental/optional>工作正常,但也许是我遗漏了一些东西。你有什么想法?

谢谢

c++ clang stdoptional

2
推荐指数
1
解决办法
4494
查看次数

标签 统计

c++ ×2

clang ×1

stdoptional ×1

valgrind ×1

wchar-t ×1