mirror of
https://github.com/google/styleguide.git
synced 2024-03-22 13:11:43 +08:00
Add unit tests for constexpr constructors
This also adds unit tests for inline+explicit constructors being okay, with and without constexpr.
This commit is contained in:
parent
cf4071cf5d
commit
2db65fed51
|
@ -1316,6 +1316,80 @@ class CpplintTest(CpplintTestBase):
|
||||||
};""",
|
};""",
|
||||||
'Single-parameter constructors should be marked explicit.'
|
'Single-parameter constructors should be marked explicit.'
|
||||||
' [runtime/explicit] [5]')
|
' [runtime/explicit] [5]')
|
||||||
|
# missing explicit for constexpr constructors is bad as well
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
constexpr Foo(int f);
|
||||||
|
};""",
|
||||||
|
'Single-parameter constructors should be marked explicit.'
|
||||||
|
' [runtime/explicit] [5]')
|
||||||
|
# missing explicit for constexpr+inline constructors is bad as well
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
constexpr inline Foo(int f);
|
||||||
|
};""",
|
||||||
|
'Single-parameter constructors should be marked explicit.'
|
||||||
|
' [runtime/explicit] [5]')
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
inline constexpr Foo(int f);
|
||||||
|
};""",
|
||||||
|
'Single-parameter constructors should be marked explicit.'
|
||||||
|
' [runtime/explicit] [5]')
|
||||||
|
# explicit with inline is accepted
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
inline explicit Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
explicit inline Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
# explicit with constexpr is accepted
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
constexpr explicit Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
explicit constexpr Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
# explicit with constexpr+inline is accepted
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
inline constexpr explicit Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
explicit inline constexpr Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
constexpr inline explicit Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
|
self.TestMultiLineLint(
|
||||||
|
"""
|
||||||
|
class Foo {
|
||||||
|
explicit constexpr inline Foo(int f);
|
||||||
|
};""",
|
||||||
|
'')
|
||||||
# structs are caught as well.
|
# structs are caught as well.
|
||||||
self.TestMultiLineLint(
|
self.TestMultiLineLint(
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user