Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Melzzzzz <mel@zzzzz.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: a style question: |
| Date | 2015-08-31 17:46 +0200 |
| Organization | albasani.net |
| Message-ID | <20150831174610.7d3167b0@maxa-pc> (permalink) |
| References | <8d16838c-60db-4fd2-b401-737ee2601d1d@googlegroups.com> <6e9323cb-1dff-4bff-b19a-d4b1da735ffb@googlegroups.com> <ms1bf1$peo$1@dont-email.me> |
On Mon, 31 Aug 2015 11:50:50 +0100
Bartc <bc@freeuk.com> wrote:
> On 31/08/2015 11:24, Malcolm McLean wrote:
> > On Monday, August 31, 2015 at 10:31:04 AM UTC+1, G G wrote:
> >> i am seeing some code that has the function return type on a
> >> separate line like
> >>
> >> int
> >> function( double a)
> >> {
> >> ...
> >> }
> >>
> >> i'm just curious, is there a name for this style?
> >> and why use this style other than the project uses this style?
> >>
> > You see it a lot in C++.
> > C++ functions will often return something like
> >
> > Usr::Graphics::BezierPathSimple<Math::real64_t, GREEN>
>
> Those guys really like to spell things out don't they? Buried
> somewhere in there is .... well I'm not sure exactly!
>
> Since the subject was function definitions, I assumed it was. Then I
> looked more carefully and thought it must have been a function call.
> Then I looked yet again, and it might be function definition after
> all.
>
> But yet, you say this is something returned by a function. So I don't
> know what the hell it might be. What a language! (If C++ had never
> been invented, and someone presented something like this, we'd all
> think it was a wind-up.)
>
Take a look at this expressive power, how many lines of code you need in C for this:
#include <iostream>
#include <vector>
#include <list>
#include <string>
#include <type_traits>
namespace mine {
using std::begin;
using std::end;
template <class T>
decltype(begin(std::declval<T&>()),
end(std::declval<T&>()),
std::true_type{})
is_container(int);
template <class T>
std::false_type is_container(...);
};
template <class T>
using is_container = decltype(mine::is_container<T>(0));
template <class T>
void print(const T& cnt,std::true_type)
{
for(auto i:cnt)std::cout<<i<<'\n';
}
template <class T>
void print(const T& cnt,std::false_type)
{
std::cout<<cnt<<'\n';
}
void print(){}
template <class K,class ...T>
void print(const K&k, const T&...t)
{
print(k,is_container<K>{});
print(t...);
}
struct Prt1 {
std::string prt = "famous";
Prt1(){}
const char* begin()const
{
return prt.data();
}
const char* end()const
{
return prt.data()+prt.size();
}
};
struct Prt2 {
int a = 5;
float b = 3.4;
Prt2(){}
friend std::ostream& operator<<(std::ostream& os, const Prt2& p2) {
os<<p2.a<<' '<<p2.b;
return os;
}
};
int main(){
std::list<std::string> a={"a","b","c"};
std::vector<float> b = {1.1,1.2};
int arr[10]={0};
print(a,' ',200,b,arr,Prt1{},Prt2{});
}
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
a style question: G G <gdotone@gmail.com> - 2015-08-31 02:30 -0700
Re: a style question: Ian Collins <ian-news@hotmail.com> - 2015-08-31 21:40 +1200
Re: a style question: jt@toerring.de (Jens Thoms Toerring) - 2015-08-31 09:52 +0000
Re: a style question: Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-08-31 03:24 -0700
Re: a style question: Bartc <bc@freeuk.com> - 2015-08-31 11:50 +0100
Re: a style question: Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-31 13:21 +0100
Re: a style question: Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-08-31 05:41 -0700
Re: a style question: Bartc <bc@freeuk.com> - 2015-08-31 14:55 +0100
Re: a style question: Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-08-31 15:50 +0100
Re: a style question: Bartc <bc@freeuk.com> - 2015-08-31 18:40 +0100
Re: a style question: Melzzzzz <mel@zzzzz.com> - 2015-08-31 17:46 +0200
Re: a style question: Bartc <bc@freeuk.com> - 2015-08-31 17:27 +0100
Re: a style question: Melzzzzz <mel@zzzzz.com> - 2015-08-31 18:42 +0200
Re: a style question: Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-08-31 17:41 +0000
Re: a style question: Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-08-31 15:33 -0700
Re: a style question: Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-09-01 08:34 +0000
Re: a style question: Ian Collins <ian-news@hotmail.com> - 2015-09-01 07:40 +1200
Re: a style question: Bartc <bc@freeuk.com> - 2015-08-31 21:36 +0100
Re: a style question: Ian Collins <ian-news@hotmail.com> - 2015-09-01 08:51 +1200
Re: a style question: Bartc <bc@freeuk.com> - 2015-08-31 22:37 +0100
Re: a style question: Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-08-31 15:24 -0700
Re: a style question: Ian Collins <ian-news@hotmail.com> - 2015-09-02 19:37 +1200
Re: a style question: jt@toerring.de (Jens Thoms Toerring) - 2015-08-31 23:33 +0000
Re: a style question: Bartc <bc@freeuk.com> - 2015-09-01 01:13 +0100
Re: a style question: Ian Collins <ian-news@hotmail.com> - 2015-09-01 18:21 +1200
Re: a style question: jt@toerring.de (Jens Thoms Toerring) - 2015-09-01 15:23 +0000
Re: a style question: Bartc <bc@freeuk.com> - 2015-09-01 18:06 +0100
Re: a style question: Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-09-01 20:39 +0000
Re: a style question: jt@toerring.de (Jens Thoms Toerring) - 2015-09-01 20:45 +0000
Re: a style question: Bartc <bc@freeuk.com> - 2015-09-01 22:53 +0100
Re: a style question: Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-08-31 17:51 -0700
csiph-web