1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5// Test file for the empty string clang tool. 6 7#include <string> 8 9// Tests for std::string declarations. 10void TestDeclarations() { 11 std::string a, b("abc"), c; 12} 13 14// Tests for std::string allocated with new. 15void TestNew() { 16 std::string* a = new std::string, *b = new std::string("abc"), 17 *c = new std::string, *d = new std::string(); 18} 19 20// Tests for std::string construction in initializer lists. 21class TestInitializers { 22 public: 23 TestInitializers() {} 24 TestInitializers(bool) {} 25 TestInitializers(double) : b("cat"), c() {} 26 27 private: 28 std::string a; 29 std::string b; 30 std::string c; 31}; 32 33// Tests for temporary std::strings. 34void TestTemporaries(const std::string& reference_argument, 35 const std::string value_argument) { 36 TestTemporaries(std::string(), std::string()); 37 TestTemporaries(std::string(), std::string()); 38} 39 40// Tests for temporary std::wstrings. 41void TestWideTemporaries(const std::wstring& reference_argument, 42 const std::wstring value_argument) { 43 TestWideTemporaries(std::wstring(), std::wstring()); 44 TestWideTemporaries(std::wstring(), std::wstring()); 45} 46 47