İş arkadaşınız yanlış, ortak yol her zaman kodu .cpp dosyalarına (veya istediğiniz herhangi bir uzantıya) ve başlıklara bildirimler koymaktır.
Bazen üstbilgiye kod koymak için bazı değer vardır, bu derleyici tarafından daha akıllı satır içi izin verebilir. Ancak aynı zamanda, derleyici zamanlarınızı yok edebilir, çünkü tüm kodlar derleyici tarafından her eklendiğinde işlenmelidir.
Son olarak, tüm kod üstbilgi olduğunda dairesel nesne ilişkilerine (bazen istenir) sahip olmak genellikle can sıkıcı bir durumdur.
Sonuç olarak, haklıydınız, o yanlış.
EDIT: Sorunu düşünüyorum. Söylediklerinin doğru olduğu bir durum var . şablonları. Boost gibi daha yeni birçok "modern" kütüphane, şablonları yoğun şekilde kullanır ve genellikle "yalnızca başlık" tır. Ancak, bu sadece şablonlarla uğraşırken yapılmalıdır çünkü onlarla uğraşırken bunu yapmanın tek yolu budur.
DÜZENLEME: Bazı insanlar biraz daha fazla açıklama ister, burada "yalnızca başlık" kodu yazmanın olumsuz yönleri hakkında bazı düşünceler:
Etrafta arama yaparsanız, pek çok insanın destekle uğraşırken derleme sürelerini azaltmanın bir yolunu bulmaya çalıştığını göreceksiniz. Örneğin: Boost Asio ile derleme sürelerini kısaltmak, Boost Asio , tek bir 1K dosyasının derlemesini derleme ile birlikte görüyor. 14'ler "patlayan" gibi görünmeyebilir, ancak kesinlikle tipik olandan çok daha uzundur ve oldukça hızlı bir şekilde toplanabilir. Büyük bir projeyle uğraşırken. Yalnızca başlık kitaplıkları derleme zamanlarını oldukça ölçülebilir bir şekilde etkiler. Sadece tolere ediyoruz çünkü destek çok faydalı.
Ek olarak, yalnızca başlıklarda yapılamayan birçok şey vardır (destek, iş parçacıkları, dosya sistemi vb. Gibi belirli parçalar için bağlamanız gereken kütüphanelere bile sahiptir). Birincil örnek, birden çok tanım hatasıyla karşılaşacağınız için yalnızca üstbilgi kütüphanelerinde basit tek nesnelerin bulunmamasıdır (tekton olan iğrençliğe başvurmadıkça). NOT: C ++ 17'nin satır içi değişkenleri bu özel örneği gelecekte yapılabilir hale getirecektir.
Son nokta olarak, yalnızca başlık kodunun bir örneği olarak boost kullanıldığında, büyük bir ayrıntı genellikle kaçırılır.
Boost, kullanıcı seviyesi kodu değil, kitaplıktır. bu yüzden sık sık değişmez. Kullanıcı kodunda, her şeyi başlıklara koyarsanız, her küçük değişiklik tüm projeyi yeniden derlemenize neden olur. Bu anıtsal bir zaman kaybıdır (ve derlemeden derlemeye geçiş yapmayan kütüphaneler için geçerli değildir). Üstbilgi / kaynak ve daha iyisi arasında bir şeyler bölüştüğünüzde, içerilen içeriği azaltmak için ileri bildirimler kullanın, bir gün içinde toplandığında saatlerce yeniden derleme kaydedebilirsiniz.