// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "weak_ptr_factory.h" namespace should_succeed { class OnlyMember { base::WeakPtrFactory factory_; }; class FactoryLast { bool bool_member_; int int_member_; base::WeakPtrFactory factory_; }; class FactoryRefersToOtherType { bool bool_member_; base::WeakPtrFactory bool_ptr_factory_; }; class FirstFactoryRefersToOtherType { bool bool_member_; base::WeakPtrFactory bool_ptr_factory_; int int_member_; base::WeakPtrFactory factory_; }; class TwoFactories { bool bool_member_; int int_member_; base::WeakPtrFactory factory1_; base::WeakPtrFactory factory2_; }; template class ClassTemplate { public: ClassTemplate() : factory_(this) {} private: bool bool_member_; base::WeakPtrFactory factory_; }; // Make sure the template gets instantiated: ClassTemplate g_instance; } // namespace should_succeed namespace should_fail { class FactoryFirst { base::WeakPtrFactory factory_; int int_member; }; class FactoryMiddle { bool bool_member_; base::WeakPtrFactory factory_; int int_member_; }; class TwoFactoriesOneBad { bool bool_member_; base::WeakPtrFactory factory1_; int int_member_; base::WeakPtrFactory factory2_; }; template class ClassTemplate { public: ClassTemplate() : factory_(this) {} private: base::WeakPtrFactory factory_; bool bool_member_; }; // Make sure the template gets instantiated: ClassTemplate g_instance; } // namespace should_fail int main() { }