• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

xlnt-community / xlnt / aa719a12-330c-47b2-9460-5b2d61336ff6

03 Feb 2025 05:39PM UTC coverage: 81.978% (-1.5%) from 83.482%
aa719a12-330c-47b2-9460-5b2d61336ff6

push

circleci

web-flow
Use C++23 for generating coverage report. (#57)

Using C++23 for coverage reporting, prepares the library for coverage
testing of future post-C++11 features.

This PR makes as few changes as possible to ensure all coverage changes
are due to the changed C++/compiler version used for generating the
coverage report.

Temporarily disable warnings as errors for coverage reporting until
better C++20/23 support is added in PR #55.

11395 of 13900 relevant lines covered (81.98%)

1202684.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.5
./source/detail/utils/string_helpers.hpp
1
// Copyright (c) 2024-2025 xlnt-community
2
//
3
// Permission is hereby granted, free of charge, to any person obtaining a copy
4
// of this software and associated documentation files (the "Software"), to deal
5
// in the Software without restriction, including without limitation the rights
6
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
// copies of the Software, and to permit persons to whom the Software is
8
// furnished to do so, subject to the following conditions:
9
//
10
// The above copyright notice and this permission notice shall be included in
11
// all copies or substantial portions of the Software.
12
//
13
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
// THE SOFTWARE
20
//
21
// @license: http://www.opensource.org/licenses/mit-license.php
22
// @author: see AUTHORS file
23

24
#pragma once
25

26
#include <string>
27
#include <vector>
28

29
#include <detail/xlnt_config_impl.hpp>
30

31
namespace xlnt {
32
namespace detail {
33

34
/// <summary>
35
/// Return a vector containing string split at each delim.
36
/// If the input string is empty, an empty vector is returned.
37
/// </summary>
38
XLNT_API_INTERNAL std::vector<std::string> split_string(const std::string &string, char delim);
39

40
/// <summary>
41
/// Concatenate all the provided items by converting them to a string using its to_string member function.
42
/// </summary>
43
template<typename T>
44
XLNT_API_INTERNAL std::string join(const std::vector<T> &items, char delim)
62✔
45
{
46
    std::string refs;
62✔
47
    for (const auto& item : items)
131✔
48
    {
49
        if (!refs.empty())
69✔
50
            refs.push_back(delim);
7✔
51

52
        refs.append(item.to_string());
69✔
53
    }
54

55
    return refs;
62✔
56
}
×
57

58
} // namespace detail
59
} // namespace xlnt
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc