/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <string>
struct Class1
{
int const * m_f1;
Class1(int * f1) : m_f1(f1) {} // expected-error {{this parameter can be const Class1::Class1 [loplugin:constparams]}}<--- Struct 'Class1' has a constructor with 1 argument that is not explicit. [+]Struct 'Class1' has a constructor with 1 argument that is not explicit. Such constructors should in general be explicit for type safety reasons. Using the explicit keyword in the constructor means some mistakes when using the class can be avoided.
};
struct Class2
{
int * m_f2;
Class2(int * f2) : m_f2(f2) {}<--- Struct 'Class2' has a constructor with 1 argument that is not explicit. [+]Struct 'Class2' has a constructor with 1 argument that is not explicit. Such constructors should in general be explicit for type safety reasons. Using the explicit keyword in the constructor means some mistakes when using the class can be avoided.
};
struct Class3
{
int * m_f2;
Class3(void * f2) : m_f2(static_cast<int*>(f2)) {}<--- Struct 'Class3' has a constructor with 1 argument that is not explicit. [+]Struct 'Class3' has a constructor with 1 argument that is not explicit. Such constructors should in general be explicit for type safety reasons. Using the explicit keyword in the constructor means some mistakes when using the class can be avoided.
};
int const * f1(int *); // expected-note {{canonical parameter declaration here [loplugin:constparams]}}
int const * f2(int *);
int const * f3(int *);
void g() {
int const * (*p1)(int *);
int n = 0;
f1(&n);
p1 = f2;<--- Variable 'p1' is assigned a value that is never used.
typedef void (*P2)();
P2 p2;
p2 = (P2) (f3);<--- Variable 'p2' is assigned a value that is never used.
}
int const * f1(int * p) { // expected-error {{this parameter can be const f1 [loplugin:constparams]}}
return p;
}
void f4(std::string * p) {
*p = std::string("xxx");
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */