473,657 Members | 2,604 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Do functions defined inside a class need inline keyword ?

Hi All,

Wanted to make sure on this,

I have some functions for which I am providing the definition inside
the class definition. (As these are very small functions like get and
set).

Do i need to declare these functions as inline (I would like them to be
inlined) ? or are these functions considered for inline by default as
the definition is provided as part of the class ?

-Thanks
Ganesh

Jul 23 '05 #1
5 1922
> I have some functions for which I am providing the definition inside
the class definition. (As these are very small functions like get and
set).

Do i need to declare these functions as inline (I would like them to be
inlined) ?
No.
... or are these functions considered for inline by default as
the definition is provided as part of the class ?


Yes. You got it right.

Stephen Howe
Jul 23 '05 #2
ga**********@gm ail.com wrote:
Hi All,

Wanted to make sure on this,

I have some functions for which I am providing the definition inside
the class definition. (As these are very small functions like get and
set).

Do i need to declare these functions as inline (I would like them to be
inlined) ? or are these functions considered for inline by default as
the definition is provided as part of the class ?


As far as I remember a function defined inside your class definition
will be considered as an inline function.

class A {
public:
int getSomething() { [method definition] };
}

would be the same as :

class A {
public:
int getSomething();
}

inline int A::getSomething () {
[method definition]
}

Correct me if im wrong.
Jul 23 '05 #3
ga**********@gm ail.com wrote:
Hi All,

Wanted to make sure on this,

I have some functions for which I am providing the definition inside
the class definition. (As these are very small functions like get and
set).

Do i need to declare these functions as inline (I would like them to be
inlined) ?
No need to declare them as inline because functions defined inside a
class are considered inline if compiler can make them inline. It should
work in your case since you are using simple get and set functions.

or are these functions considered for inline by default as the definition is provided as part of the class ?
You are correct.

-Thanks
Ganesh


Jul 23 '05 #4
>> need to declare them as inline because functions defined inside a
class are considered inline if compiler can make them inline. The compiler treats the inline expansion options and keywords as
suggestions. There is no guarantee that functions will be inlined. You
cannot force the compiler to inline a particular function.

A class's member functions can be declared inline either by using the
inline keyword or by placing the function definition within the class
definition.
are these functions considered for inline by default as
the definition is provided as part of the class ?

Yes.

Jul 23 '05 #5
upashu2 wrote:
need to declare them as inline because functions defined inside a
class are considered inline if compiler can make them inline.

The compiler treats the inline expansion options and keywords as
suggestions. There is no guarantee that functions will be inlined. You
cannot force the compiler to inline a particular function.

A class's member functions can be declared inline either by using the
inline keyword or by placing the function definition within the class
definition.


Somehow the "No" word and the rest of the post went astray and there
was a gap of 2 lines in between which changed the whole meaning of my
post :(

Apologies for that. Please read my post with its first word as "No".

:(

Jul 23 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
2339
by: Anthony Baxter | last post by:
To go along with the 2.4a3 release, here's an updated version of the decorator PEP. It describes the state of decorators as they are in 2.4a3. PEP: 318 Title: Decorators for Functions and Methods Version: $Revision: 1.34 $ Last-Modified: $Date: 2004/09/03 09:32:50 $ Author: Kevin D. Smith, Jim Jewett, Skip Montanaro, Anthony Baxter
13
6554
by: A | last post by:
Hi, I'm having problems completing a project in C++. I have been using inline functions in some of my header files. I have only done so for simple functions that only have 1 statement (eg. accessor and mutator methods to access private data members). I would like to know if there are any issues with using inline functions that may have attributed to my errors before I start separting them out into "outline functions". Regards
47
3852
by: Richard Hayden | last post by:
Hi, I have the following code: /******************************** file1.c #include <iostream> extern void dummy(); inline int testfunc() {
21
746
by: Rubén Campos | last post by:
I haven't found any previous message related to what I'm going to ask here, but accept my anticipated excuses if I'm wrong. I want to ask about the real usefulness of the 'inline' keyword. I've read many authors (and it's my belief, too) who discourage the use of the 'inline' keyword, because: - The 'inline' word only advice the compiler about wich functions should be expanded, but not force it to expand them. Also, the compiler can...
3
1620
by: Ruben Campos | last post by:
I've found a problem with types defined inside a template. With a non-template class, I can write the following: // MyClass.hpp class MyClass { // ... typedef unsigned int MyType; MyType MyMethod ( /* ... */ ); // ...
3
4635
by: Dave | last post by:
Hello all, Please consider this code: #ifndef FOO_INCLUDED #define FOO_INCLUDED // File: foo.h class foo {
4
2635
by: John Goche | last post by:
Hello, I have been going through several header source files which define classes with inline functions. In the case where the inline functions are not defined in place, the inline functions from all classes within the header file are included via a separate file, at the end of the file, with a directive of the form: #include <foo.inl>
2
3141
by: DaTurk | last post by:
Hi, I have an interesting issue, well, it's not really an issue, but I'd like to understand the mechanics of what's going on. I have a file, in CLI, which has a class declared, and a static fuction. Because the class is declared globally, I declare it as static. Is a function with a namespace scope declared as static by default? So, this worked fine when I was accessing the static function inside
14
6008
by: Jess | last post by:
Hello, I learned that there are five kinds of static objects, namely 1. global objects 2. object defined in namespace scope 3. object declared static instead classes 4. objects declared static inside functions (i.e. local static objects) 5. objects declared at file scope.
0
8385
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8303
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8821
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8502
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
7316
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
4150
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4300
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2726
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1941
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.