コード例 #1
0
ファイル: example_str_const.cpp プロジェクト: arcolight/ecl
int main(int, char**, char**)
{
    constexpr str_const test("test!");
    constexpr str_const test2(test);

    std::cout << test << std::endl;

    std::cout << "Out with range-based \"for\": ";
    for(auto& c: test)
    {
        std::cout << c;
    }
    std::cout << std::endl;

    static_assert(test.size() == 5, "Static assert failed!");
}
コード例 #2
0
ファイル: string.cpp プロジェクト: JonChesterfield/PrefixTree
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
#include "string.hpp"
#include "catch.hpp"

template <char C>
char get()
{
  return C;
}

TEST_CASE("str_const is usable at compile time")
{
  constexpr str_const s = "foobar";
  static_assert(6 == s.size(), "");
  static_assert(s[0] == 'f', "");
  static_assert(s[1] == 'o', "");
  static_assert(s[2] == 'o', "");
  static_assert(s[3] == 'b', "");
  static_assert(s[4] == 'a', "");
  static_assert(s[5] == 'r', "");
}

TEST_CASE("equality")
{
  constexpr str_const f = "foo";
  constexpr str_const b = "bar";

  static_assert(f == f, "");